說明:官方文檔(https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html)很詳細,在此簡單記錄下
需求:雖說是一次性訂閱,但前台可以通過bindtop點擊觸發微信訂閱api收集用用戶點擊訂閱次數。方便后台可以發更多的消息
第一步,定義全局模板ID 和 收集方法
// 統一模板ID export const COMPLATEMESSAGE = 'agFxPZurLwE5CYrFTGTWcgXuknS06sVWfVdUdQaDhcF' export function onSubscribe(templateIds, e){ return new Promise((resolve, reject) => { wx.requestSubscribeMessage({ tmplIds: [templateIds], success(res) { console.log('獲取訂閱消息權限',res) // 申請訂閱成功 if (res.errMsg === 'requestSubscribeMessage:ok') { resolve(true) } }, fail (err){ reject(false) console.log(err) } }); }) }
第二步:頁面點擊收集
import { execteGet,onSubscribe, COMPLATEMESSAGE, } from '@/utils/require'
goDetail: async function(e){
// 頁面有跳轉做點擊同步,防止用戶未允許頁面跳走
await onSubscribe(COMPLATEMESSAGE)
wx.navigateBack({
delta: 1,
fail(ex){
//對於跳轉到帶有底部導航欄頁面的要用switchTab
wx.switchTab({
url: '/pages/group/groupage/main',
})
}
})
}
changeState: async function(e){
// 頁面無跳轉點擊做異步,requestSubscribeMessage收集方法有一秒延時體驗不好
onSubscribe(COMPLATEMESSAGE)
}
requestSubscribeMessage方法使用時最好處理下兼容,不然彈框沒有默認允許勾,一直彈。或者微信開放平台設置基礎版本 > 2.9.2
