uni-app获取手机当前连接的WIFI名称

最近做项目有一个需求,需要通过设备自带的WIFI链接,才能跳转到一个网站去进行设置,类似于设置忘记自家WIFI密码,重置WIFI一样,需要连接到WiFi,才能访问网站。

需求:

获取连接的WiFi名称,判断是否为我需要的WIFI名称,格式是否正确(设备发散的WIFI名称格式固定)

uniapp是一个非常好用的前端框架,立刻就去找了,但是只有获取设备的网络类型,和一个获取WIFI列表的,当然全部满足不了我的需求在,百度找了一圈,好不容易发现一个讲解非常详细的,根据他的说明,非常nice的解决了我的问题。

// 主窗体  
var MainActivity = plus.android.runtimeMainActivity()  
// 上下文  
var Context = plus.android.importClass('android.content.Context')  
// 导入WIFI管理 和 WIFI 信息 的class  
plus.android.importClass("android.net.wifi.WifiManager")  
plus.android.importClass("android.net.wifi.WifiInfo")  
plus.android.importClass("android.net.wifi.ScanResult")  
plus.android.importClass("java.util.ArrayList")  
// 获取 WIFI 管理实例  
var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE)  

// 获取当前连接WIFI的信息  
var info = wifiManager.getConnectionInfo()  
// 获取当前 WIFI 连接的 SSID (WIFI 名称)  
var ssid = info.getSSID()  
// 这里的 获取到的名称 是 带 双引号的 如 "cmcc"    
// 所以我们这里处理一下  
ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")  

//获取列表
var resultList = wifiManager.getScanResults(),  
    len = resultList.size()  

for(var i = 0; i < len; i++) {  
    console.log(resultList.get(i).plusGetAttribute('SSID'))  
}

完美解决

uni.getNetworkType({
	success: function (res) {
	        console.log(res.networkType);
			if(res.networkType != "wifi"){
				uni.showToast({
				    icon:'none',duration:2000,
				    title:"未连接WIFI",
				})
			}else{
				//判断获取的WiFi是否为机型WiFi
				// 主窗体  
				var MainActivity = plus.android.runtimeMainActivity()  
				// 上下文  
				var Context = plus.android.importClass('android.content.Context')  
				// 导入WIFI管理 和 WIFI 信息 的class  
				plus.android.importClass("android.net.wifi.WifiManager")  
				plus.android.importClass("android.net.wifi.WifiInfo")  
				plus.android.importClass("android.net.wifi.ScanResult")  
				plus.android.importClass("java.util.ArrayList")  
				// 获取 WIFI 管理实例  
				var wifiManager = MainActivity.getSystemService(Context.WIFI_SERVICE)  

				// 获取当前连接WIFI的信息  
				var info = wifiManager.getConnectionInfo()  
				
				// 获取当前 WIFI 连接的 SSID (WIFI 名称)  
				var ssid = info.getSSID()  
				// 这里的 获取到的名称 是 带 双引号的 如 "cmcc"    
				// 所以我们这里处理一下  
				ssid = ssid.replace(/(^\"*)|(\"*$)/g, "")  
				console.log("info",ssid)
				var resultList = wifiManager.getScanResults(),  
					len = resultList.size()  

				for(var i = 0; i < len; i++) {  
					console.log(resultList.get(i).plusGetAttribute('SSID'))  
				}
			}
	    }
})

大佬地址:
https://ask.dcloud.net.cn/question/12113
是评论取的大佬

你可能感兴趣的:(uni-app,wifi)