小程序实现设备消息订阅
一、说明
先说明一下什么是小程序的消息订阅,其实就是在小程序进行某个消息的订阅,订阅以后就可以在微信收到推送的消息了。推送走的服务端,在服务端调用微信的推送接口,然后推送至指定的微信用户。
二、创建模版
消息订阅是有个消息模版概念的,一般分为以下三种:
1.一次性订阅
2.长期订阅
3.设备消息订阅
设备消息订阅也是长期订阅。
这里以其举例,设备消息订阅需要先创建硬件设备,先去小程序管理台进行操作,如下图:
添加了设备后,消息订阅那会有该设备相应的长期消息订阅。然后可以创建消息模版,可以看到每个消息有自己的模版ID,这个在之后会用到。具体如下图:
从消息模版列表点进去详情之后可以看到详细内容,这里的详细内容格式后面会用到,具体如下图:
三、代码实现
代码实现分为小程序和服务端两部分。
1.小程序
小程序主要就是通过消息模版id和设备modelId来进行订阅。代码如下:
Page({
data: {
settingData: [
{
'tempId': 'modelId',
'title': '门锁安全告警',
'content': '未订阅'
},
{
'tempId': 'modelId',
'title': '门锁撬动告警',
'content': '未订阅'
},
{
'tempId': 'modelId',
'title': '门锁故障告警',
'content': '未订阅'
},
{
'tempId': 'modelId',
'title': '开关门提醒',
'content': '未订阅'
},
{
'tempId': 'modelId',
'title': '有人逗留提醒',
'content': '未订阅'
},
{
'tempId': 'modelId',
'title': '门锁电量不足提醒',
'content': '未订阅'
},
]
],
},
// ================== 页面加载
onLoad(options) {
this.getSettings();
},
// ================== 页面显示
onShow() {
this.getSettings();
},
// ================== 渲染订阅列表
getSettings() {
let that = this;
wx.getSetting({
withSubscriptions: true, success(res) {
console.log(" 获取状态 = ",res);
var settingDic = res.subscriptionsSetting.itemSettings; // 设置的状态
console.log('订阅数据为->' + JSON.stringify(settingDic))
for (let key in settingDic) {
for (let i = 0; i < that.data.settingData[0].length; i