更新记录

0.1.4(2019-10-21)

  • 解决了智能配网时可能崩溃的问题
  • 增加了取消/中止配网函数 cancel()
  • 补充完善了文档说明

0.1.3(2019-10-19)

2019/10/18 第一个版本:

  • getWifiInfo
  • smartConfig

平台兼容性

Android Android CPU类型 iOS
armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


EspTouch 配网插件

基于 ESP-Touch SDK 开发的 UniApp 原生插件,用于 ESP8266/ESP32 等支持 ESP-Touch 协议的设备无线配网。

API接口调用说明

本插件提供了三个接口:getWifiInfo(),smartConfig(),cancel()。
函数调用遵循“异步回调”式的调用约定:函数本身不返回值,而是通过函数的最后一个参数提供JS回调返回值,有些函数可能会回调多次(可能有中间结果)。

API 使用顺序为:
- 先调用getWifiInfo()取得当前手机/平板所连接的WiFi信息(关键字段是bssid和ssid)
- 然后自己做一个UI界面,让用户输入当前WiFi的密码;或通过其它方式取得对应密码(比如通过配置文件或数据库等)
- 调用smartConfig(),传入bssid、ssid、password,其它参数可不写(deviceCount默认为1,broadcast默认为true)
- 等待回调函数完成配置,如果中间想强行中止,则可调用cancel()取消

getWifiInfo() - 获取当前连接的 WiFi 信息

参数:无

返回值:JSON 对象,字段如下
    SSID: 当前所连WiFi的SSID,字符串
    BSSID: 当前所连WiFi的BSSID(相当于MAC地址),字符串
    IP: 本机IP地址,字符串
    RSSI: 信号强度,单位dBm,整型
    SPEED: 连接速率,单位MB/S,整型
    FREQ: 无线频率,单位Hz,整型。(仅安卓5.0以上版本才有此字段)

smartConfig() - 开始智能配网

参数:JSON 对象,字段如下
    bssid: 当前所连WiFi的SSID,字符串
    ssid: 当前所连WiFi的BSSID(相当于MAC地址),字符串
    password: 当前所连WiFi的密码
    deviceCount: 总共要配置的设备数量,默认为1,如果有多个,会等都配置成功后才会返回
    broadcast: 是否使用组播,默认为true

返回值:JSON 对象,会有多次回调,可通过type字段指示返回值类型
    type: 回调类型,字符串,可能的取值包括: begin/stepOk/stepFailed/end
    当 type=='begin' 时,表示配置开始,无其它参数
    当 type=='stepOk' 时,表示配置有一个设备配置成功,其它参数包括:
        ip: 分配到的IP地址,字符串
        bssid: 本机的BSSID(相当于MAC地址),字符串
    当 type=='stepFailed' 时,表示有一个设备配置失败,其它参数包括:
        cancelled: 是否是被取消了
        success: 是否成功了
    当 type=='end' 时,表示配置结束,函数返回

cancel() - 取消智能配网

参数:无

返回值:无

代码示例

// 导入插件
const EspTouch = uni.requireNativePlugin('EspTouch');
...

// JS 调用插件功能
// 获取当前连接的 WiFi 信息
getWifiInfo() {
    let info = EspTouch.getWifiInfo({}, result => {
        const msg = JSON.stringify(result);
        modal.toast({message: msg, duration: 1.5});
    });
}

// 开始智能配网
smartConfig() {
    let info = EspTouch.smartConfig(
        {
            bssid: '30:fc:68:e5:c6:11',
            ssid: 'szw-lab',
            password: '29108716',
            deviceCount: '1',
            broadcast: 'true'
        }, 
        result => {
            const msg = JSON.stringify(result);

            if(result.type == 'begin') {
                modal.toast({message: "配置开始", duration: 1.5});
            } 
            else if(result.type == 'stepOk') {
                modal.toast({message: "发现并配置了一个设备:"+msg, duration: 1.5});
            } 
            else if(result.type == 'stepFailed') {
                modal.toast({message: "配置失败:"+msg, duration: 1.5});
            } 
            else if(result.type == 'end') {
                modal.toast({message: "配置结束", duration: 1.5});
            } 
        }
    );
}

// 取消智能配网
cancel() {
    EspTouch.cancel();
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问