easyLink

概述

封装了EasyLink SDK

iOS注意

  1. 您需要打开位置权限才能获取Wi Fi信息。请转到设置->隐私->定位服务以打​​开[easyLink]定位服务。
  2. 启动后设备已连接,请确保网络为2.4G,设备仅支持2.4G。

配置包名

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

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

配置 entitlement 文件

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

配送参数如下:

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

注意:本模块 iOS 平台上最低适配系统版本为 iOS 9.0

接口

init

配置初始化

init(callback(ret))

params

ssid:

  • 类型:字符串类型
  • 描述:(可选项)wifi广播,iOS为当前手机连接wifi广播(仅android支持)
  • 默认值:手机当前连接wifi广播

password:

  • 类型:字符串类型
  • 描述:无线网络密码

dhcp:

  • 类型:布尔类型
  • 描述:(可选项)设备是否自动获取IP地址(开启DHCP),@true或者@false, EASYLINK_AWS配网必须用@ true(仅iOS支持)
  • 默认值:true

ip:

  • 类型:字符串类型
  • 描述:(可选项)IP地址,如果开启DHCP,可以不填,EASYLINK_AWS配网不支持(仅iOS支持)

netmask:

  • 类型:字符串类型
  • 描述:(可选项)子网掩码,如果开启DHCP,可以不填,EASYLINK_AWS配网不支持(仅iOS支持)

gateway:

  • 类型:字符串类型
  • 描述:(可选项)网关,如果开启DHCP,可以不填,EASYLINK_AWS配网不支持(仅iOS支持)

dns1:

  • 类型:字符串类型
  • 描述:(可选项)DNS服务器1,如果开启DHCP,可以不填,EASYLINK_AWS配网不支持(仅iOS支持)

dns2:

  • 类型:字符串类型
  • 描述:(可选项)DNS服务器2,如果开启DHCP,可以不填,EASYLINK_AWS配网不支持(仅iOS支持)

mode:

  • 类型:数字类型
  • 描述:(可选项)配网模式(仅iOS支持)
  • 取值范围:

    • 0: EASYLINK_V1,不再使用
    • 1:EASYLINK_V2, 组播配网
    • 2:EASYLINK_PLUS, 广播配网
    • 3:EASYLINK_V2_PLUS, 组播+广播配网
    • 4:EASYLINK_AWS, 最新的广播配网,提供一键配网中最好的兼容性
    • 5: EASYLINK_SOFT_AP, 连接到模块开启的热点进行配网
    • 6:EASYLINK_MODE_MAX
    • 默认:4

    isSendIP :

  • 类型:布尔类型

  • 描述:(可选项)是否发送IP(仅android支持)
  • 默认值:false

    runSecond :

  • 类型:数字类型

  • 描述:(可选项)发送持续时间,单位s(仅android支持)
  • 默认值:50

    sleeptime :

  • 类型:数字类型

  • 描述:(可选项)每包之间间隔时间,单位ms(仅android支持)
  • 默认值:50

    extraData :

  • 类型:字符串类型

  • 描述:(可选项)附加数据(仅android支持)

    rc4key :

  • 类型:字符串类型

  • 描述:(可选项)RC4加密密钥(仅android支持)

示例代码

var easyLink = api.require('easyLink');
easyLink.init({
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

transmitSettings

开始发送配网信息

transmitSettings()

示例代码

var easyLink = api.require('easyLink');
easyLink.transmitSettings();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopTransmitting

停止发送配网信息

stopTransmitting()

示例代码

var easyLink = api.require('easyLink');
easyLink.stopTransmitting();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unInit

销毁EasyLink实例

unInit()

示例代码

var easyLink = api.require('easyLink');
easyLink.unInit();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

configFTCClient

如果触发了onFoundByFTC回调,就可以使用configFTCClient接口来设置设备参数了。但是这个功能也要和设备上的Config Server功能配合。(仅iOS支持)

configFTCClient(callback(ret))

params

client:

  • 类型:数字类型
  • 描述:客户端编号

configDict:

  • 类型:json对象
  • 描述:(可选项)设备在Config Server功能中提供的配置信息

示例代码

var easyLink = api.require('easyLink');
easyLink.configFTCClient({
});

可用性

iOS系统

可提供的1.0.0及更高版本

ssidForConnectedNetwork

获取当前连接WiFi的ssid

ssidForConnectedNetwork(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
 ssid: '',    //字符串类型;ssid       
}

示例代码

var easyLink = api.require('easyLink');
easyLink.ssidForConnectedNetwork(function(ret) {
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

监听事件

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    eventType: '',    //字符串类型;监听事件回掉;取值范围如下:(仅iOS支持)
                   //onFound:新设备发现
                  //onFoundByFTC:新设备发现(FTC)
                      //onDisconnectFromFTC:disconnected
   client:0,                //数字类型;客户端编号 (仅iOS支持)        
    configDict:{},        //json对象;设备在Config Server功能中提供的配置信息,onFound返回    (仅iOS支持)              
     name:'',                //字符串类型;设备名称,就是设备在mDNS服务中提供的实例名称,onFoundByFTC返回(仅iOS支持)
     mataDataDict:'',    //json对象;元数据,即使设备在mDNS服务中提供的TXT Record,或者UDP广播中提供的JSON数据,onFoundByFTC返回(仅iOS支持)
    sucMsg:'', //字符串类型,成功后返回数据(仅android支持)
    errMsg:'', //字符串类型,失败后返回数据(仅android支持)
    errCode:,   //数字类型,失败返回code(仅android支持)
}

示例代码

var easyLink = api.require('easyLink');
easyLink.addEventListener(function(ret) {
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

requestLocation

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

requestLocation(callback(ret))

callback(ret)

ret:

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

示例代码

var easyLink = api.require('easyLink');
easyLink.requestLocation( function(ret) {
 alert(JSON.stringify(ret));
});

可用性

iOS系统