wifi
currentWifi getWifiState scanWifiList getConfiguredNetworks openWifi closeWifi getWifiPassword disconnect disableNetwork removeNetwork manageWifiBySystem connect requestLocation
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
wifi封装了获取当前设备当前连接的wifi的ssid接口,在android平台上(2015.4.24号版本开始)支持获取当前环境下的wifi列表,和连接到指定wifi。由于苹果安全机制,iOS暂时不开放获取wifi列表和链接wifi的功能接口。本模块由第三方模块开发者提供,使用本模块需在线云编译安装包
iOS 端使用说明
在 iOS 12(含) 以后的版本必须按如下步骤配置,否则无法获取 wifi 信息。
配置包名
在 iOS 平台上使用本功能,需要在 生成包名(bundle id) 的时候,勾选 Access WiFi Information 功能。如下图:
注意:若配置已经在使用中的包名,需重新生成描述文件,打包证书不用动。
配置 entitlement 文件
iOS 上使用本模块前,需要先配置一个 entitlement 文件。配置方法参考论坛帖子 iOS修改entitlements文件
配送参数如下:
<key>com.apple.developer.networking.wifi-info</key>
<true/>
注意:iOS 13以后需要先调用requestLocation接口获取用户位置权限调用currentWifi接口才能获取设备当前连接的wifi信息,已经开启位置权限的不需要调用此接口
currentWifi
获取设备当前连接的wifi
currentWifi(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
bssid: //无线ap的mac地址
ssid: //无线ap名称
}
err:
- 类型:JSON 对象
内部字段:
{
msg:”” //错误描述
}
示例代码
var wifi = api.require('wifi');
wifi.currentWifi(function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.ssid + "*" + ret.bssid });
} else {
api.alert({ msg: ret.msg });
}
});
补充说明
无
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getWifiState
获取当前wifi状态
getWifiState(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
wifiState: //wifi的状态 ,取值范围如下:
WIFI_STATE_ENABLED 已开启
WIFI_STATE_ENABLING 正在开启
WIFI_STATE_DISABLED 已关闭
WIFI_STATE_DISABLING 正在关闭
WIFI_STATE_UNKNOWN 未知状态
}
示例代码
var wifi = api.require('wifi');
wifi.getWifiState(function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.wifiState });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
scanWifiList
扫描获取附近的wifi列表
scanWifiList(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
scanWifiList: //wifi列表 ,
内部字段:[{
frequency: //
level: //
bssid: //
capabilities: //
ssid: //
}]
}
示例代码
var wifi = api.require('wifi');
wifi.scanWifiList(function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.scanWifiList[0].ssid });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
getConfiguredNetworks
获取已经配置过的wifi列表
getConfiguredNetworks(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
configuredNetworks: //数组类型 ,
内部字段:[{
hiddenSSID: //
networkId: //
priority: //
bssid: //
status: //
ssid: //
}]
}
示例代码
var wifi = api.require('wifi');
wifi.getConfiguredNetworks(function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.configuredNetworks[0].ssid });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
openWifi
打开wifi
openWifi(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
result: //打开结果,取值范围如下:
WIFI_STATE_ENABLED 已开启
WIFI_STATE_ENABLING 正在开启
WIFI_STATE_DISABLING 正在关闭
WIFI_STATE_UNKNOWN 未知状态
OPEN_WIFI_SUCCESS 打开wifi成功
OPEN_WIFI_FAIL 打开wifi失败
}
示例代码
var wifi = api.require('wifi');
wifi.openWifi(function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
closeWifi
关闭wifi
closeWifi(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
result: //打开结果,取值范围如下:
WIFI_STATE_ENABLED 已开启
WIFI_STATE_ENABLING 正在开启
WIFI_STATE_DISABLING 正在关闭
WIFI_STATE_UNKNOWN 未知状态
OPEN_WIFI_SUCCESS 打开wifi成功
OPEN_WIFI_FAIL 打开wifi失败
}
示例代码
var wifi = api.require('wifi');
wifi.closeWifi(function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.result });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
getWifiPassword
获取指定wifi(已配置)密码(手机需要root)
getWifiPassword({params}, callback(ret, err))
params
ssid:
- 类型:字符串
- 默认值:无
- 描述:要获取密码的wifi的名字,不可为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
password: //获取的密码,字符串类型
}
ret:
- 类型:JSON 对象
内部字段:
{
msg: //错误描述
}
示例代码
var wifi = api.require('wifi');
wifi.getWifiPassword({
ssid: "abc",
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: "连接成功" });
} else {
api.alert({ msg: err.msg });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
disconnect
断开当前wifi连接
disconnect(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
}
示例代码
var wifi = api.require('wifi');
wifi.disconnect(function(ret, err) {
if (ret.status) {
api.alert({ msg: '断开连接成功' });
} else {
api.alert({ msg: '断开连接失败' });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
disableNetwork
禁用某网络
disableNetwork({params}, callback(ret, err))
params
ssid:
- 类型:字符串
- 默认值:无
- 描述:要禁用的wifi的名字,不可为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
}
ret:
- 类型:JSON 对象
内部字段:
{
msg: //错误描述
}
示例代码
var wifi = api.require('wifi');
wifi.disableNetwork({
ssid: "abc",
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: "禁用成功" });
} else {
api.alert({ msg: err.msg });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
removeNetwork
删除某网络
removeNetwork({params}, callback(ret, err))
params
ssid:
- 类型:字符串
- 默认值:无
- 描述:要删除的wifi的名字,不可为空
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
}
ret:
- 类型:JSON 对象
内部字段:
{
msg: //错误描述
}
示例代码
var wifi = api.require('wifi');
wifi.removeNetwork({
ssid: "abc",
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: "删除成功" });
} else {
api.alert({ msg: err.msg });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
manageWifiBySystem
跳转到系统设置界面
manageWifiBySystem(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
}
示例代码
var wifi = api.require('wifi');
wifi.manageWifiBySystem(function(ret, err) {
if (ret.status) {
api.alert({ msg: '跳转成功' });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
connect
链接某网络
connect({params}, callback(ret, err))
params
ssid:
- 类型:字符串
- 默认值:无
- 描述:要链接的wifi的名字,不可为空
password:
- 类型:字符串
- 默认值:无
- 描述:要连接的wifi的密码,需要与要连接的wifi密码一致,不可为空
type:
- 类型:字符串
- 默认值:无
- 描述:密码保护类型,需要与要连接的wifi保护类型一致,不可为空
- 取值范围:
- NOPASS (无密码)
- WEP, (wep保护类型)
- WPA (wpa保护类型)
callback(ret, err)
ret:
- 类型:JSON 对象
内部字段:
{
status: //操作成功状态值
}
ret:
- 类型:JSON 对象
内部字段:
{
msg: //错误描述
}
示例代码
var wifi = api.require('wifi');
wifi.connect({
ssid: 'abc',
password: '12345678',
type: 'wpa'
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: '连接成功' });
} else {
api.alert({ msg: err.msg });
}
});
补充说明
此接口仅支持android平台
可用性
Android系统
可提供的1.0.1及更高版本
requestLocation
请求定位权限(iOS 13以后需要先获取用户位置权限才能才能获取设备当前连接的wifi信息)
requestLocation(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:false //布尔类型;如果用户未同意开启定位权限,status会返回值,其他情况下不会返回
}
示例代码
var wifi = api.require('wifi');
wifi.requestLocation( function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统