更新记录
1.0.0(2022-08-16)
新版首发
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
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>