有些人经常遇到推送消息时有时无的情况,今天说一下我的经验:
1、小程序订阅消息是需要用户点击触发,所以在需要订阅消息业务前,每一次都需要使用询问方法(所以最好是放在要触发消息的前一步询问);
2、用户每次选择允许都会有一次消息推送的机会;
3、如果用户选择了 总是保持以上选择,不再询问 ,这样也需要调用以下代码方法,只是不会出现询问弹框;
4、如果有业务做到定时推送,需要采用公众号模板消息,推送小程序页面。
goCheckInfo: function (e) {
var that = this
var tmplIds = 'tmplId'//模板id
wx.getSetting({
withSubscriptions: true,
success: function (res) {
if (res.subscriptionsSetting.mainSwitch) { // 用户打开了订阅消息总开关
if (res.subscriptionsSetting.itemSettings != null) { // 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
let moIdState = res.subscriptionsSetting.itemSettings[tmplIds]; // 用户同意的消息模板id
wx.requestSubscribeMessage({
tmplIds: [tmplIds],
success(res) {
//成功之后处理业务
},
})
} else {
wx.requestSubscribeMessage({
tmplIds: [tmplIds],
success(res) {
//成功之后处理业务
},
})
}
} else {
console.log('订阅消息未开启')
}
},
fail: function (error) {
console.log(error);
},
})
},