1、获取消息订阅授权弹窗
//弹窗授权窗口
wx.requestSubscribeMessage({
tmplIds: [tmplIds], //订阅消息模版ID
success(res) {
console.log('同意消息推送')
},
fail(res) {
console.log('requestSubscribeMessage fail', res)
},
})
2、获取用户当前授权的状态
注意事项:当用户授权总是接收后,用户在将接收消息关闭后再开启,这个时候用户如果不重新授权是结束不到推送消息的。需要通过tap定义一个点击事件,通过点击事件来重新获取一次推送权限。
//这里是获取下发权限地方,根据官方文档,可以根据 wx.getSetting() 的 withSubscriptions 这个参数获取用户是否打开订阅消息总开关。后面我们需要获取用户是否同意总是同意消息推送。所以这里要给它设置为true 。
wx.getSetting({
withSubscriptions: true,
success: function(res) {
if (res.subscriptionsSetting.mainSwitch && res.subscriptionsSetting.mainSwitch !=
null) {
if(res.subscriptionsSetting.itemSettings){
let moIdState = res.subscriptionsSetting.itemSettings[tmplIds];
if (moIdState === "accept") {
console.log('同意消息推送')
} else if (moIdState === 'reject') {
console.log("拒绝消息推送");
} else if (moIdState === 'ban') {
console.log("已被后台封禁");
}
}
} else {
if (wx.requestSubscribeMessage) {
wx.requestSubscribeMessage({
tmplIds: [tmplIds],
success(res) {
console.log('同意消息推送')
},
fail(res) {
console.log('requestSubscribeMessage fail', res)
},
})
}
}
},
fail: function(error) {
console.log(error);
}
})