更新记录
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:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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();
}