本文目的,分享一個實際案例: 開發(fā)微信小程序的報警器的微信訂閱消息, 設備報警后觸發(fā)微信報警
前提: 有一個微信小程序并且微信認證過。
1: 添加設備申請權限
2:按照實際情況填寫設備信息, 一般等兩天到三天能審核過
?3: 申請設備消息能力 , 這個一部不做的話,會報這樣的出錯誤,不能亂正確的訂閱。官方也沒有說明白[wx.requestSubscribeDeviceMessage fail]:? {errMsg: "requestSubscribeDeviceMessage:fail requestSubscribeDeviceMessage:fail invalid scope", errCode: -12001}
4:訂閱消息模板,選一個符合你需求的模板, 現(xiàn)有模板太少,勉強用一下。
4:一面搞定后就獲得了兩個ID, 一個是model_id,
另外一個是templd Id ,后面要用到
5: 開始寫代碼:?
訂閱消息的流程是這樣的:
1:小程序發(fā)送設備的序列號SN 給,返回獲得snticket
2: 小程序發(fā)送 SN snticket,modelid templeid 訂閱硬件長期消息
3: 服務器端通利用消息模板來發(fā)送訂閱消息給客戶
我采用的是微信云開發(fā)和服務器Nodejs 結合的方式進行開發(fā), 獲取sntick的是放在云開發(fā)上面的
// 云函數(shù)入口文件
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: 'xxxxxx' }) // 使用當前云環(huán)境
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const resp = await cloud.openapi.device.getSnTicket({
sn: event.sn,
model_id: "xxxxx"
})
console.log("get_data=",resp.snTicket)
return resp.snTicket
}
獲取sntick以后再小程序里面開始訂閱文章來源:http://www.zghlxwxcb.cn/news/detail-853587.html
SubscribeMessages: function (sn) {
//服務器獲取sntickit
console.log(sn)
wx.cloud.callFunction({
name: 'getsn',
data: {
sn: sn
},
success: function (res) {
console.log("getsnx=", res)
var sntickit = res.result
wx.showModal({
title: '訂閱設備狀態(tài)通知',
content: '為及時了解設備最新狀態(tài),請容許系統(tǒng)給您發(fā)送設備狀態(tài)消息',
confirmText: "同意",
cancelText: "拒絕",
success: function (res) {
if (res.confirm) {
//調用訂閱消息
console.log('用戶點擊確定');
//調用訂閱
console.log("requestSubscribeMessage")
wx.requestSubscribeDeviceMessage({
sn: sn,
snTicket: sntickit,
modelId: 'xxxxxxxx',
tmplIds: ['xxxxxx'],
success(res) {
console.log('[wx.requestSubscribeDeviceMessage success]: ', res)
if (res.errMsg == "requestSubscribeDeviceMessage:ok") {
wx.showToast({
title: '訂閱成功',
})
} else {
wx.showToast({
title: '訂閱失敗',
})
}
// { 'QCpBsp1TGJ1ML-UIwAIMkdXpPGzxSfwJqsKsvMVs3io': 'accept' }
},
fail(res) {
console.log('[wx.requestSubscribeDeviceMessage fail]: ', res)
wx.showToast({
title: '訂閱失敗',
})
}
})
} else if (res.cancel) {
console.log('用戶點擊取消');
///顯示第二個彈說明一下
wx.showModal({
title: '溫馨提示',
content: '拒絕后無法收到消息',
confirmText: "知道了",
showCancel: false,
success: function (res) {
///點擊知道了的后續(xù)操作
///如跳轉首頁面
}
});
}
}
})
},
fail: function () {
wx.showToast({
title: '訂閱失敗',
})
},
complete: function () {
}
})
最后在服務器nodejs 上發(fā)送,需要這部分代碼的同學可以關注我文章來源地址http://www.zghlxwxcb.cn/news/detail-853587.html
到了這里,關于微信小程序通知,微信小程序長期訂閱消息添加硬件設備能力的設備訂閱消息step-by-step的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!