为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
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信息,已经开启位置权限的不需要调用此接口
获取设备当前连接的wifi
currentWifi(callback(ret, err))
ret:
内部字段:
{
status: //操作成功状态值
bssid: //无线ap的mac地址
ssid: //无线ap名称
}
err:
内部字段:
{
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及更高版本
获取当前wifi状态
getWifiState(callback(ret, err))
ret:
内部字段:
{
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及更高版本
扫描获取附近的wifi列表
scanWifiList(callback(ret, err))
ret:
内部字段:
{
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及更高版本
获取已经配置过的wifi列表
getConfiguredNetworks(callback(ret, err))
ret:
内部字段:
{
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及更高版本
打开wifi
openWifi(callback(ret, err))
ret:
内部字段:
{
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) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
此接口仅支持android平台
Android系统
可提供的1.0.1及更高版本
关闭wifi
closeWifi(callback(ret, err))
ret:
内部字段:
{
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及更高版本
获取指定wifi(已配置)密码(手机需要root)
getWifiPassword({params}, callback(ret, err))
ssid:
ret:
内部字段:
{
status: //操作成功状态值
password: //获取的密码,字符串类型
}
ret:
内部字段:
{
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及更高版本
断开当前wifi连接
disconnect(callback(ret, err))
ret:
内部字段:
{
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({params}, callback(ret, err))
ssid:
ret:
内部字段:
{
status: //操作成功状态值
}
ret:
内部字段:
{
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({params}, callback(ret, err))
ssid:
ret:
内部字段:
{
status: //操作成功状态值
}
ret:
内部字段:
{
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(callback(ret, err))
ret:
内部字段:
{
status: //操作成功状态值
}
var wifi = api.require('wifi');
wifi.manageWifiBySystem(function(ret, err) {
if (ret.status) {
api.alert({ msg: '跳转成功' });
}
});
此接口仅支持android平台
Android系统
可提供的1.0.1及更高版本
链接某网络
connect({params}, callback(ret, err))
ssid:
password:
type:
ret:
内部字段:
{
status: //操作成功状态值
}
ret:
内部字段:
{
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及更高版本
请求定位权限(iOS 13以后需要先获取用户位置权限才能才能获取设备当前连接的wifi信息)
requestLocation(callback(ret))
ret:
{
status:false //布尔类型;如果用户未同意开启定位权限,status会返回值,其他情况下不会返回
}
var wifi = api.require('wifi');
wifi.requestLocation( function(ret) {
api.alert({msg: JSON.stringify(ret)});
});
iOS系统