微信小程序,总会有订阅消息功能,到某个时间点时,自动为用户推送消息,后台推送消息的前提是,用户已允许推送消息,可是用户订阅时可以选择是订阅一次,还是保持以上选择,不再询问,
需要注意的是,如果点击了总是保持以上选择不再询问,将不会再弹出提示框,但是一定要再次发送订阅消息,不然后端是无法判断的
wx.getSetting({
withSubscriptions: true,
success: function (res) {
if (res.subscriptionsSetting.mainSwitch) {
if (res.subscriptionsSetting.itemSettings && res.subscriptionsSetting.itemSettings != 'undefined') { // 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
let moIdState = res.subscriptionsSetting.itemSettings && res.subscriptionsSetting.itemSettings.'消息模板id';
// 用户同意的消息模板id
if (moIdState === 'accept') {
self.requestSubscribeMessage()
} else if (moIdState === 'reject') {
} else if (moIdState === 'ban') {} else {}
} else {
wx.showModal({
title: '提示',
content: '是否允许接收消息提醒',
success(res) {
if (res.confirm) {
wx.setStorageSync("hasAcceptMessage", 1)
// subMessage.getGuestTemplateIds()
self.requestSubscribeMessage()
}
}
})
}
}
},
fail: function (error) {
console.log(error, "errror+++++++++++")
}
})
//监听用户点击了允许还是拒绝
requestSubscribeMessage() {
let result = wx.requestSubscribeMessage({
tmplIds: '消息模板id'
})
if (result["MBdGe93b1r3hfb8i_WziD2cnAos-ZdHq0QKl_-bLg6s"] == 'accept') {
console.log("接受了不再询问")
} else if (result["MBdGe93b1r3hfb8i_WziD2cnAos-ZdHq0QKl_-bLg6s"] == 'reject') {
console.log("出错了reject")
}
},