注意
- 订阅消息必需由tap事件触发
- 保持以上选择不在询问,这辈子都不会再弹窗了,需要
openSetting
去设置页打开。没勾选每次都会弹窗。用户引导很重要。
代码
auditSubscriptionsSetting() {
let that = this
const tmplId = '把这个换成你自己的模板ID就彳亍了'
wx.getSetting({
withSubscriptions: true,
success(res) {
console.log(res)
if (res.subscriptionsSetting && res.subscriptionsSetting.mainSwitch) {
if (
res.subscriptionsSetting.itemSettings &&
res.subscriptionsSetting.itemSettings[tmplId]
) {
let item = res.subscriptionsSetting.itemSettings[tmplId]
if (item == 'reject') {
console.log('提示:用户拒绝订阅消息')
that.dingyueComfirm(tmplId)
} else if (item == 'accept') {
console.log('提示:您已经开启订阅消息')
} else if (item == 'ban') {
console.log('提示:您已经被后台封禁')
}
} else {
console.log('提示:用户没有勾选订阅消息或者没有状态')
that.dingyueComfirm(tmplId)
}
} else {
console.log('提示:订阅消息主开关没打开')
that.dingyueComfirm(tmplId)
}
}
})
},
dingyueComfirm: function(tmplId) {
wx.showModal({
title: '订阅消息',
content: '请同意我们给您推送信息,以便接受租户提交审核提醒。',
success: res => {
if (res.confirm) {
wx.requestSubscribeMessage({
tmplIds: [tmplId],
success: res => {
if (res[tmplId] === 'accept') {
wx.showToast({
title: '订阅成功!',
icon: 'success'
})
} else if (res[tmplId] == 'reject') {
wx.showModal({
title: '订阅消息',
content: '您当前拒绝接受消息通知,是否去开启',
confirmText: '开启授权',
confirmColor: '#345391',
cancelText: '仍然拒绝',
cancelColor: '#999999',
success(res) {
if (res.confirm) {
console.log('用户点击确定')
wx.openSetting({
success(res) {
console.log(res.authSetting)
},
fail(err) {
console.log(err)
}
})
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
},
fail(err) {
console.log(err)
}
})
}
}
})
},