1. 程式人生 > 其它 >小程式 訂閱訊息 wx.requestSubscribeMessage()

小程式 訂閱訊息 wx.requestSubscribeMessage()

前端通過wx.requestSubscribeMessage(Object object)調起客戶端小程式訂閱訊息介面,返回使用者訂閱訊息的操作結果。使用者勾選訂閱面板中“總是保持以上選擇,不再詢問”時,模板訊息會被新增到使用者的小程式設定頁,通過wx.getSetting介面可以獲取使用者對相關模板訊息的訂閱狀態。

訂閱訊息:

export default{ data() { return { subscribeMes: true, } } } methods:{ talkOrAsk() { const that = this; if (compareVersion(global.globalData.SDKVersion, "2.8.2") >= 0) { wx.requestSubscribeMessage({ tmplIds: ["tml8xm_ZUAVzUgepzU-2zyyy2DXkfZnwS04OcMbVNm4"],//需要訂閱的訊息模板的id的集合,一次呼叫最多可訂閱3條訊息 // 訊息模板id在[微信公眾平臺(mp.weixin.qq.com)-功能-訂閱訊息]中配置 success(res) { // 介面呼叫成功的回撥函式 console.log(res,'compareVersion') if ( res["tml8xm_ZUAVzUgepzU-2zyyy2DXkfZnwS04OcMbVNm4"] == "accept" // Object res [TEMPLATE_ID]是動態的鍵,即模板id,值包括'accept'、'reject'、'ban'。 // 'accept'表示使用者同意訂閱該條id對應的模板訊息,'reject'表示使用者拒絕訂閱該條id對應的模板訊息,'ban'表示已被後臺封禁。 ) { if (that.subscribeMes) { wx.showToast({ title: "訂閱成功!", duration: 1500, icon: "success", success(data) { that.subscribeMes = false; } }); } mpvue.navigateTo({ url: `/pages/chat/main` }); } else { mpvue.navigateTo({ url: `/pages/chat/main` }); } }, fail(res) { // 介面呼叫失敗的回撥函式 if (res.errCode === 20004) { wx.showModal({ title: "溫馨提示", content: "您已拒絕授權,將無法在微信中收到回覆通知!", showCancel: false, success: res => { if (res.confirm) { mpvue.navigateTo({ url: `/pages/chat/main` }); } } }); } } }); } else { wx.showModal({ title: "溫馨提示", content: "您的微信版本過低,將無法在微信中收到回覆通知!", showCancel: false, success: res => { if (res.confirm) { mpvue.navigateTo({ url: `/pages/chat/main` }); } } }); } }, }

相容問題:

版本號相容(wx.getSystemInfo/wx.getSystemInfoSync可以獲取當前小程式執行的基本庫的版本號 SDKVersion),

function compareVersion(v1, v2) { v1 = v1.split('.') v2 = v2.split('.') const len = Math.max(v1.length, v2.length) while (v1.length < len) { v1.push('0') } while (v2.length < len) { v2.push('0') } for (let i = 0; i < len; i++) { const num1 = parseInt(v1[i]) const num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 } } return 0 }