微信小程序中订阅消息无法触发事件或者关闭消息推送
使用wx.requestSubscribeMessage发送订阅消息时,需要先判断是否已经已经授权消息推送
wx.getSetting()
wx.getSetting({
withSubscriptions: true,
success (res) {
console.log(res.authSetting)
console.log(res.subscriptionsSetting)
}
})
如果消息推送没有打开res.subscriptionsSetting.withSubscriptions=false;这时调用
wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})
是无法触发事件的,如果想强制用户消息推送可以:调起客户端小程序设置界面 wx.openSetting(Object object),把订阅消息改成允许。
wx.getSetting({
withSubscriptions:true,
success: (sub) => {
console.log("[打开订阅消息]",sub)
if(sub.subscriptionsSetting.mainSwitch){
//已打开打开订阅消息
wx.requestSubscribeMessage({
tmplIds: [''],
success:res=>{
}
})
}else{
//未打开打开订阅消息
wx.openSetting({
success (res) {
console.log(res.authSetting)
}
})
}
}
})