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的功能接口。本模块由第三方模块开发者提供,使用本模块需在线云编译安装包

wifi - 图1

iOS 端使用说明

在 iOS 12(含) 以后的版本必须按如下步骤配置,否则无法获取 wifi 信息。

配置包名

在 iOS 平台上使用本功能,需要在 生成包名(bundle id) 的时候,勾选 Access WiFi Information 功能。如下图:

wifi - 图2

注意:若配置已经在使用中的包名,需重新生成描述文件,打包证书不用动。

配置 entitlement 文件

iOS 上使用本模块前,需要先配置一个 entitlement 文件。配置方法参考论坛帖子 iOS修改entitlements文件

配送参数如下:

  1. <key>com.apple.developer.networking.wifi-info</key>
  2. <true/>

注意:iOS 13以后需要先调用requestLocation接口获取用户位置权限调用currentWifi接口才能获取设备当前连接的wifi信息,已经开启位置权限的不需要调用此接口

currentWifi

获取设备当前连接的wifi

currentWifi(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. bssid //无线ap的mac地址
  4. ssid: //无线ap名称
  5. }

err:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg:”” //错误描述
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.currentWifi(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: ret.ssid + "*" + ret.bssid });
  5. } else {
  6. api.alert({ msg: ret.msg });
  7. }
  8. });

补充说明

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getWifiState

获取当前wifi状态

getWifiState(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. wifiState //wifi的状态 ,取值范围如下:
  4. WIFI_STATE_ENABLED 已开启
  5. WIFI_STATE_ENABLING 正在开启
  6. WIFI_STATE_DISABLED 已关闭
  7. WIFI_STATE_DISABLING 正在关闭
  8. WIFI_STATE_UNKNOWN 未知状态
  9. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.getWifiState(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: ret.wifiState });
  5. }
  6. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

scanWifiList

扫描获取附近的wifi列表

scanWifiList(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. scanWifiList //wifi列表 ,
  4. 内部字段:[{
  5. frequency //
  6. level: //
  7. bssid: //
  8. capabilities: //
  9. ssid: //
  10. }]
  11. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.scanWifiList(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: ret.scanWifiList[0].ssid });
  5. }
  6. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

getConfiguredNetworks

获取已经配置过的wifi列表

getConfiguredNetworks(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. configuredNetworks //数组类型 ,
  4. 内部字段:[{
  5. hiddenSSID //
  6. networkId: //
  7. priority: //
  8. bssid: //
  9. status: //
  10. ssid: //
  11. }]
  12. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.getConfiguredNetworks(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: ret.configuredNetworks[0].ssid });
  5. }
  6. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

openWifi

打开wifi

openWifi(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. result //打开结果,取值范围如下:
  4. WIFI_STATE_ENABLED 已开启
  5. WIFI_STATE_ENABLING 正在开启
  6. WIFI_STATE_DISABLING 正在关闭
  7. WIFI_STATE_UNKNOWN 未知状态
  8. OPEN_WIFI_SUCCESS 打开wifi成功
  9. OPEN_WIFI_FAIL 打开wifi失败
  10. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.openWifi(function(ret, err) {
  3. if (ret.status) {
  4. alert(JSON.stringify(ret));
  5. } else {
  6. alert(JSON.stringify(err));
  7. }
  8. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

closeWifi

关闭wifi

closeWifi(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. result //打开结果,取值范围如下:
  4. WIFI_STATE_ENABLED 已开启
  5. WIFI_STATE_ENABLING 正在开启
  6. WIFI_STATE_DISABLING 正在关闭
  7. WIFI_STATE_UNKNOWN 未知状态
  8. OPEN_WIFI_SUCCESS 打开wifi成功
  9. OPEN_WIFI_FAIL 打开wifi失败
  10. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.closeWifi(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: ret.result });
  5. }
  6. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

getWifiPassword

获取指定wifi(已配置)密码(手机需要root)

getWifiPassword({params}, callback(ret, err))

params

ssid:

  • 类型:字符串
  • 默认值:无
  • 描述:要获取密码的wifi的名字,不可为空

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. password //获取的密码,字符串类型
  4. }

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //错误描述
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.getWifiPassword({
  3. ssid: "abc",
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: "连接成功" });
  7. } else {
  8. api.alert({ msg: err.msg });
  9. }
  10. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

disconnect

断开当前wifi连接

disconnect(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.disconnect(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: '断开连接成功' });
  5. } else {
  6. api.alert({ msg: '断开连接失败' });
  7. }
  8. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

disableNetwork

禁用某网络

disableNetwork({params}, callback(ret, err))

params

ssid:

  • 类型:字符串
  • 默认值:无
  • 描述:要禁用的wifi的名字,不可为空

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. }

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //错误描述
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.disableNetwork({
  3. ssid: "abc",
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: "禁用成功" });
  7. } else {
  8. api.alert({ msg: err.msg });
  9. }
  10. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

removeNetwork

删除某网络

removeNetwork({params}, callback(ret, err))

params

ssid:

  • 类型:字符串
  • 默认值:无
  • 描述:要删除的wifi的名字,不可为空

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. }

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //错误描述
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.removeNetwork({
  3. ssid: "abc",
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: "删除成功" });
  7. } else {
  8. api.alert({ msg: err.msg });
  9. }
  10. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

manageWifiBySystem

跳转到系统设置界面

manageWifiBySystem(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.manageWifiBySystem(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: '跳转成功' });
  5. }
  6. });

补充说明

此接口仅支持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 对象

内部字段:

  1. {
  2. status: //操作成功状态值
  3. }

ret:

  • 类型:JSON 对象

内部字段:

  1. {
  2. msg: //错误描述
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.connect({
  3. ssid: 'abc',
  4. password: '12345678',
  5. type: 'wpa'
  6. }, function(ret, err) {
  7. if (ret.status) {
  8. api.alert({ msg: '连接成功' });
  9. } else {
  10. api.alert({ msg: err.msg });
  11. }
  12. });

补充说明

此接口仅支持android平台

可用性

Android系统

可提供的1.0.1及更高版本

requestLocation

请求定位权限(iOS 13以后需要先获取用户位置权限才能才能获取设备当前连接的wifi信息)

requestLocation(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:false //布尔类型;如果用户未同意开启定位权限,status会返回值,其他情况下不会返回
  3. }

示例代码

  1. var wifi = api.require('wifi');
  2. wifi.requestLocation( function(ret) {
  3. alert(JSON.stringify(ret));
  4. });

可用性

iOS系统