wifi

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

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) {
        api.alert({msg: JSON.stringify(ret)});
    } else {
        api.alert({msg: 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) {
    api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24