更新记录

1.0(2023-07-25)

新版发布


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 17

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


阿里生活平台设备配网

插件包集成准备

a、要在阿里生活平台完善相关的信息,获取到安全图片(app需要这个图片) b、请将nativeplugins/Ali-Iot-Provision 添加到工程对应位置 c、将a步骤获得的图片放到nativeplugins/Ali-Iot-Provision/android/res/drawable目录(没有就创建目录 d、manifest.json 中原生插件配置添加Ali-Iot-Provision(阿里生活平台 - 设备配网插件) e、权限需要: android:

    <uses-permission android:name="android.permission.INTERNET" />  <!--网络访问-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--允许程序改变WiFi状态,配网等-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />   <!--允许改变WiFi多播状态???-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />    <!--允许一个程序访问CellID或 WiFi热点来获取粗略的位置,登陆、设备添加等-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  <!--允许一个程序访问CellID或 WiFi热点来获取精确的位置,登陆、设备添加等???-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <!--允许应用程序访问额外的位置提供命令,登陆、设备添加等???-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />  <!--允许程序改变网络状态,如是否联网,配网???-->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

f、用a步骤使用的签名、包名制作uniapp调试基座 制作自定义基座来运行调试

插件接口调用

插件对象

var provisionApi = uni.requireNativePlugin("Ali-Iot-Provision");

接口及参数

插件内自动初始化阿里sdk,需要保证已经存放了安全图片,否则初始化会失败。 所有回调结果,type 对应原生回调的函数名。data对应的各回调参数的值。

开始配网 startAddDevice

provisionApi.startAddDevice({
                    productKey:"a1AMdAP0X2q",            //扫码获得或手动填写
                    linkType:"ForceAliLinkTypeBroadcast" //可参考[阿里定义](https://gaic.alicdn.com/ztms/ilop-ApiReference-V5/com/aliyun/alink/business/devicecenter/api/add/LinkType.html?spm=a2c4g.11186623.0.0.52145fa2nbWyEL)
                },function(result){
                    console.log(result);
                    //{"data":{"prepareType":1},"type":"onProvisionPrepare"}

                     if(result.type == "onProvisionPrepare"){
                          // 手机热点配网、设备热点配网、一键配网、蓝牙辅助配网、二维码配网会走到该流程,
                          // 零配和智能路由器配网不会走到该流程。
                          // prepareType = 1提示用户输入账号密码
                          // prepareType = 2提示用户手动开启指定热点 aha 12345678
                          // 执行完上述操作之后,调用toggleProvision接口继续执行配网流程
                         if(result.data.prepareType == 1){
                             provisionApi.toggleProvision({
                                 wifiName:"TP-LINK_A1D5-lhg",  //wifi名称 不支持中文名称
                                 wifiPwd:"19817852563",   //wifi 密码
                                 timeOut:60   //单位秒,目前最短只能设置60S
                             });
                         }
                     }
                     else if(result.type == "onPreCheck"){
                         // 参数检测回调

                     } else if(result.type == "onProvisioning"){
                          // 配网中

                     } else if(result.type == "onProvisionStatus"){
                          // 二维码配网会走到这里  provisionStatus=ProvisionStatus.QR_PROVISION_READY表示二维码ready了
                          // ProvisionStatus.QR_PROVISION_READY.message() 获取二维码内容
                          // 注意:返回二维码时已开启监听设备是否已配网成功的通告,并开始计时,UI端应提示用户尽快扫码;
                          // 如果在指定时间配网超时了,重新调用开始配网流程并刷新二维码;
                     } else if(result.type == "onProvisionedResult"){
                         // 配网结果 如果配网成功之后包含token,请使用配网成功带的token做绑定
                     }
                });

给设备设定wifi toggleProvision

本接口是在开始配网过程中根据onProvisionPrepare回调事件中repareType == 1时调用

provisionApi.toggleProvision({
                                 wifiName:"TP-LINK_A1D5-lhg",  //wifi名称 不支持中文名称
                                 wifiPwd:"19817852563",        //wifi 密码
                                 timeOut:60                    //单位秒,目前最短只能设置60S
                             });

停止配网stopAddDevice

provisionApi.stopAddDevice();

隐私、权限声明

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

wifi权限 定位权限

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

插件自身不采集任何数据,插件使用的生活物联网平台SDK采集数据请参考其官方说明:https://help.aliyun.com/document_detail/180775.html?spm=a2c4g.419078.0.0.4ac5769cWQXhlS

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

暂无用户评论。

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