问题描述:
用户取消勾选“总是保持以上选择”,然后点击允许订阅
wx.getSetting 获取不到模板订阅状态。获取方法如下
wx.getSetting({
withSubscriptions: true,
success(res) {
console.log(res.subscriptionsSetting)
// res.subscriptionsSetting = {
// mainSwitch: true, // 订阅消息总开关
// 每一项开关 ↓↓↓↓↓ 无内容
// }
},
fail(err) {
console.error(err)
}
})
允许订阅后,从设置里查看通知管理,如下
打印日志如下:
说明:
- 订阅消息用的是 wx.requestSubscribeMessage ,模板 id 肯定是传入了, 而且 id 是个正确的。
- 如果不取消勾选“总是保持以上选择”,wx.getSetting 就能获取每一项模板 id 订阅状态。
- 用户不取消勾选“总是保持以上选择”,然后点击允许订阅。wx.requestSubscribeMessage 是能获取模板 id 订阅状态,但是由于wx.requestSubscribeMessage 会唤起订阅弹窗,所以无法使用它来做为每次查询订阅状态的方法。
- 补充:订阅模板 id 是一次性模板 id。没有试过长期的
急需解决的点:
为什么取消勾选“总是保持以上选择”,wx.getSetting 就获取不到每一项模板 id 订阅状态?
如何才能在用户取消勾选“总是保持以上选择”,wx.getSetting 获取每一项模板 id 订阅状态呢?
具体可以看下这个视频,up讲得还是很详细的
https://www.bilibili.com/video/BV1qE411P7Tc