getCurWifiInfo
获取当前已连接的wifi的信息,由于ios的安全机制,ios只能获取ssid、bssid和ipAddr。对于Android 9.0及以上的版本,要想能够获取ssid(ssid就是wifi名字)必须进行以下2步操作。第一:必须打开手机的gps,目前手机只能手动打开gps,开发者可用代码打开手机设置中gps开关的界面引导用户打开gps,有关打开gps的功能请参考模块store中的gps模块。第二:在apicloud的"云编译"界面编译时注意给app设置"位置"权限(在"平台"两个字右边的安卓小机器人图片所在的方框内可以设置 位置权限)。Android9.0及以上除了ssid外的其他信息不需要打开gps就能获取。
关于iOS12及以上使用该接口的说明
在iOS12及以上使用该接口必须按照以下2个步骤才能使用:
1、登录苹果开发者账号后台https://developer.apple.com,找到App IDs选项,在该项下找到Access WiFi Information选项并勾选上,如下图,表示该App需要获取wifi信息。然后重新生成项目的描述文件(Provisioning Profiles),具体操作见官方文档 iOS证书及描述文件制作流程 https://docs.apicloud.com/Dev-Guide/iOS-License-Application-Guidance 。
2、配置 entitlement 文件。在widget\res(如果没有res文件夹则要先创建res文件夹)下创建文件名为UZApp.entitlements的文件,该文件需要和widget代码一起进行云编译,UZApp.entitlements内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.networking.wifi-info</key>
<true/>
</dict>
</plist>
getCurWifiInfo(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:返回当前已连接的wifi的信息
- 内部字段:
//ios只能获取ssid、bssid和ipAddr。
{
"result": 1,//获取成功状态 0失败 1成功
"data": //获取成功时放回data字段
{
"encrypt": "[WEP][ESS]", // 安全性
"status":"已连接",//连接状态
"rssi": -45, // 信号强度
"linkSpeed": 54,//连接速度
"ipAddr": "192.168.1.87",//IP地址
"bssid": "70:f9:6d:37:c1:72",//Ap MAC
"networkId": 12,//网络ID
"ssid": "AP-GWWG",//wifi名字
"hiddenSSID": false,//是否隐藏wifi名字
"hardAddr": "A0:86:C6:0C:07:4A",//本机MAC
"name": "wlan0/wlan0",//Wifi接口名 Name和DisplayName
"netmask": "255.255.255.192",////网络掩码
"gateway": "192.168.1.126",//网关
"dns1": "202.103.224.68", //DNS1
"dns2": "202.103.225.68" //DNS2
},
"msg":"wifi已关闭" //获取失败时返回msg字段,msg为获取错误的原因
}
示例代码
var wifi = api.require('wifiMgr');
wifi.getCurWifiInfo(function(ret, err){
alert(JSON.stringify(ret));
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本