更新记录

1.0.0(2022-08-16)

新版首发


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 16

原生插件通用使用流程:

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


GizWifi

机智云Wifi

使用

<template>
    <view>
        <view class="title">
            初始化
        </view>
        <button type="primary" @click="startWithAppInfo">startWithAppInfo</button>
        <view class="title">
            用户部分
        </view>
        <button type="primary" @click="requestSendPhoneSMSCode">requestSendPhoneSMSCode</button>
        <button type="primary" @click="registerUser">registerUser</button>
        <button type="primary" @click="userLogin">userLogin</button>
        <view class="title">
            配置设备入网部分
        </view>
        <button type="primary" @click="setDeviceOnboardingDeploy">setDeviceOnboardingDeploy</button>
        <button type="primary" @click="stopDeviceOnboarding">stopDeviceOnboarding</button>
        <view class="title">
            设备发现和订阅部分
        </view>
        <button type="primary" @click="getBoundDevices">getBoundDevices</button>
        <button type="primary" @click="setSubscribe">setSubscribe</button>
        <button type="primary" @click="bindRemoteDevice">bindRemoteDevice</button>
        <button type="primary" @click="bindDeviceByQRCode">bindDeviceByQRCode</button>
        <view class="title">
            设备控制部分
        </view>
        <button type="primary" @click="write">write</button>
        <view class="title">
            设备定时部分
        </view>
        <button type="primary" @click="createScheduler">createScheduler</button>
        <button type="primary" @click="updateSchedulers">updateSchedulers</button>
        <view class="title">
            设备分享部分
        </view>
        <button type="primary" @click="sharingDevice">sharingDevice</button>
    </view>
</template>

<script>
    const GizWifi = uni.requireNativePlugin('GizWifi');
    export default {
        data() {
            return {
                "uid": null,
                "token": null
            }
        },
        onLoad() {

        },
        methods: {
            startWithAppInfo() {
                /**
                 * 在机智云开发者中心 dev.gizwits.com 中,每个注册的设备在对应的“应用配置”中,都能够查到对应的appId 和appSecret
                 * */
                var dic = {
                    "appInfo": {
                        "appId": "",
                        "appSecret": ""
                    }
                }
                GizWifi.startWithAppInfo(dic, (res) => {
                    console.log("startWithAppInfo:" + JSON.stringify(res))
                });
            },
            requestSendPhoneSMSCode() {
                /**
                 * 通过手机号请求短信验证码
                 * */
                var dic = {
                    "phone": "", //手机号
                    "appSecret": ""
                }
                GizWifi.requestSendPhoneSMSCode(dic, (res) => {
                    console.log("requestSendPhoneSMSCode:" + JSON.stringify(res))
                });
            },
            registerUser() {
                /**
                 * 用户注册
                 * */
                var dic = {
                    "username": "", //注册用户名(可以是手机号、邮箱或普通用户名)
                    "password": "123456", //注册密码
                    "code": "638026", //手机短信验证码。短信验证码注册后就失效了,不能被再次使用
                    "accountType": 0 //用户类型 0-普通用户 1-手机用户 2-电子邮箱用户 3-其他用户类型(包括匿名用户)
                }
                GizWifi.registerUser(dic, (res) => {
                    console.log("registerUser:" + JSON.stringify(res))
                });
            },
            userLogin() {
                /**
                 * 用户登录
                 * */
                var dic = {
                    "username": "",
                    "password": "123456"
                }
                GizWifi.userLogin(dic, (res) => {
                    console.log("userLogin:" + JSON.stringify(res))
                    this.uid = res.uid
                    this.token = res.token
                });
            },
            setDeviceOnboardingDeploy() {
                /**
                 * 设备配网
                 * mode:设备配置模式。0-SoftAP 配置模式 1-AirLink 配置模式 2-支持多设备进行 AirLink 配置 3-蓝牙配置模式 4-支持多设备同时进行蓝牙配置
                 * softAPSSIDPrefix:SoftAPMode 模式下 SoftAP 的 SSID 前缀或全名,默认前缀为:XPG-GAgent-。SDK 根据该参数判断手机当前是否连上了设备的 SoftAP 热点。AirLink 模式时传nil 即可
                 * types:模组类型 0-庆科3162 1-汉枫模组 2-睿昱模组 3-联盛德模组 4-乐鑫模组 5-高通模组 6-TI模组 7-语音天下模组 8-庆科 mico 9-古北模组
                 * 10-Atmel 模组 11-其他模组 12-芯海模组 13-庆科 AWS 14-汉枫 v8 模组 15-乐鑫模组广播模式
                 * */
                var dic = {
                    "ssid": "", //待配置的路由 SSID 名
                    "key": "123456", //待配置的路由密码
                    "mode": 0,
                    "softAPSSIDPrefix": "",
                    "timeout": 100, //配置的超时时间。SDK 默认执行的最小超时时间为30秒。在超时时间内如果无法配置和绑定会回调配网失败
                    "types": [0],
                    "bind": true //配网时是否自动绑定,YES 为自动绑定,NO 为不自动绑定。请注意,自动绑定要求先完成用户登录
                }
                GizWifi.setDeviceOnboardingDeploy(dic, (res) => {
                    console.log("setDeviceOnboardingDeploy:" + JSON.stringify(res))
                });
            },
            stopDeviceOnboarding() {
                /**
                 * 停止设备配网
                 * */
                GizWifi.stopDeviceOnboarding();
            },
            getBoundDevices() {
                /**
                 * 获取绑定设备列表
                 * */
                var dic = {
                    "uid": this.uid, //用户登录或注册时得到的 uid
                    "token": this.token, //用户登录或注册时得到的 token
                }
                GizWifi.getBoundDevices(dic, (res) => {
                    console.log("getBoundDevices:" + JSON.stringify(res))
                });
            },
            setSubscribe() {
                /**
                 * 设备订阅或解除订阅
                 * */
                var dic = {
                    "deviceIndex": 0, //先调用getBoundDevices,再获取
                    "is": true //订阅或者解除订阅
                }
                GizWifi.setSubscribe(dic, (res) => {
                    console.log("setSubscribe:" + JSON.stringify(res))
                });
            },
            bindRemoteDevice() {
                /**
                 * 绑定远端设备到服务器
                 * */
                var dic = {
                    "uid": this.uid,
                    "token": this.token,
                    "mac": "virtual:170338:482817", //待绑定设备的 mac
                    "productKey": "37c2a6ffde0444f2a1aa534f47958ec3", //待绑定设备的 productKey
                    "productSecret": "08123a73d94c4ce8be279c0539b9f60d", //待绑定设备的 productSecret
                    "beOwner": true //是否以 owner 身份绑定设备。此参数只对首次绑定的用户有效
                }
                GizWifi.bindRemoteDevice(dic, (res) => {
                    console.log("bindRemoteDevice:" + JSON.stringify(res))
                });
            },
            bindDeviceByQRCode() {
                /**
                 * 根据二维码绑定设备到服务器
                 * */
                var dic = {
                    "uid": this.uid,
                    "token": this.token,
                    "QRContent": "", //二维码内容。二维码需联系机智云 FAE 提供
                    "beOwner": false //是否以 owner 身份绑定设备。此参数只对首次绑定的用户有效
                }
                GizWifi.bindDeviceByQRCode(dic, (res) => {
                    console.log("bindDeviceByQRCode:" + JSON.stringify(res))
                });
            },
            write() {
                /**
                 * 给设备发送控制指令。已订阅的设备变为可控状态后才能发送控制指令
                 * */
                var dic = {
                    "deviceIndex": 0, //先调用getBoundDevices,再获取
                    "command": {
                        "Switch": true //命令行
                    },
                    "sn": 0 //控制命令序号,用于对应控制命令应答数据。控制确认回调时会返回这个sn
                }
                GizWifi.write(dic, (res) => {
                    console.log("write:" + JSON.stringify(res))
                    var productUI = JSON.parse(res.device.productUI)
                    console.log("productUI:" + JSON.stringify(productUI))
                    //console.log("writeencodeURI:" + productUI.product_key)
                });
            },
            createScheduler() {
                /**
                 * 创建定时任务
                 * date:定时任务的预设日期,格式形如:1990-10-03。定时任务将在预设日期这一天到达时执行。此参数不能填 nil 或空串,如果填写了过去日期或者不符合约定格式,无法在云端创建定时任务
                 * time:定时任务的预设时间,24 小时制,格式形如:07:08。定时任务将在预设时间到达时执行。此参数不能填 nil 或空串,必须符合约定格式,否则无法在云端创建定时任务
                 * enabled:定时任务是否开启
                 * remark:定时任务备注信息
                 * */
                var dic = {
                    "deviceIndex": 0, //先调用getBoundDevices,再获取
                    "uid": this.uid,
                    "token": this.token,
                    "command": {
                        "Switch": true //命令行
                    },
                    "date": "2022-08-12",
                    "time": "18:00",
                    "enabled": true,
                    "remark": "备注",
                }
                GizWifi.createScheduler(dic, (res) => {
                    console.log("createScheduler:" + JSON.stringify(res))
                });
            },
            updateSchedulers() {
                /**
                 * 同步更新设备定时任务列表
                 * */
                var dic = {
                    "deviceIndex": 0, //先调用getBoundDevices,再获取
                    "uid": this.uid,
                    "token": this.token,
                }
                GizWifi.updateSchedulers(dic, (res) => {
                    console.log("updateSchedulers:" + JSON.stringify(res))
                });
            },
            sharingDevice() {
                /**
                 * 创建分享邀请
                 * */
                var dic = {
                    "token": this.token,
                    "deviceID": "", //创建分享邀请的设备 ID
                    "sharingWay": 1, //分享邀请是通过账号分享还是二维码分享  0-账号分享 1-二维码分享
                    "guestUser": "", //如果是账号分享,要指定用户名,用户名可以是普通用户名、手机号、邮箱、用户的 uid。如果是二维码分享,该参数可传nil
                    "guestUserType": 2, //0-普通用户 1-手机用户 2-电子邮箱用户 3-其他用户类型(包括匿名用户)
                    "QRCodeImagePath": plus.io.convertLocalFileSystemURL("_doc/GizWifi"),
                    "QRCodeImageName": "test.png"
                }
                GizWifi.sharingDevice(dic, (res) => {
                    console.log("sharingDevice:" + JSON.stringify(res))
                });
            }

        }
    }
</script>
<style>
    .title {
        text-align: center;
        color: red;
    }
</style>

隐私、权限声明

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

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

插件使用的 机智云 SDK会采集数据,详情可参考:https://www.gizwits.com/

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

暂无用户评论。

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