小程序
小游戏
企业微信
微信支付
扫描小程序码分享
点击拒绝后在设置中选择接收,还是收不到消息
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
用户在设置中选择接受,这个时候只是代表用户允许你给他订阅消息(并且不会再弹出订阅弹窗),用户还是需要在小程序中的各个入口触发静默订阅的逻辑获取发送消息的次数,获取1次就能发送1条消息给到用户
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我用的Taro,基本上一样,下面代码就是让大家看看流程 const test = () => { console.log('test'); Taro.getSetting({ // getSetting方法用来获取小程序向用户请求过的权限 withSubscriptions: true, // 这个字段为true时,用来获取用户订阅消息的订阅状态 success(res) { console.log('getSetting', res); if (res.subscriptionsSetting.mainSwitch) { const moIdState = res.subscriptionsSetting?.itemSettings?.['消息id']; // 用户同意的消息模板id if (moIdState === 'accept') { // 同意了消息推送 } else if (moIdState === 'reject') { Taro.showModal({ title: '提示', content: '您已拒绝接受订阅消息,如需订阅消息,请到小程序设置中开启', showCancel: true, success(res) { if (res.confirm) { Taro.openSetting({ withSubscriptions: true, success(res) { console.log('openSetting', res); }, fail(err) { console.log('err', err); } }) } } }); } } else { Taro.showModal({ title: '提示', content: '快点给我权限', showCancel: true, success(res) { if (res.confirm) { Taro.openSetting({ withSubscriptions: true, success(res) { console.log('openSetting', res); }, fail(err) { console.log('err', err); } }) } } }); } // 我们需要判断的是res.subscriptionsSetting.itemSettings这个字段 // 假设你的模板id为"abcd",itemSettings里,如果没有名为abcd的属性,表明用户还未订阅过消息 // 如果有名为adcd的属性,且属性值为reject,表明用户拒绝订阅该消息 // 如果有名为abcd的属性,且属性值为accept,表明用户已接受该订阅消息 console.log(res.subscriptionsSetting.itemSettings) } }) Taro.requestSubscribeMessage({ tmplIds: ['消息id',], // 模板id列表 success(res) { console.log('res1', res); }, fail(err) { console.log('err1', err); } }); }
怎么能在用户前端处理一下不,怎么搞得又要动代码啊,都半年过去,官方不出来解决一下嘛?
触发静默订阅的逻辑,能具体说一下步骤吗?
调出用户的设置,用户手动打开
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
用户在设置中选择接受,这个时候只是代表用户允许你给他订阅消息(并且不会再弹出订阅弹窗),用户还是需要在小程序中的各个入口触发静默订阅的逻辑获取发送消息的次数,获取1次就能发送1条消息给到用户
我用的Taro,基本上一样,下面代码就是让大家看看流程 const test = () => { console.log('test'); Taro.getSetting({ // getSetting方法用来获取小程序向用户请求过的权限 withSubscriptions: true, // 这个字段为true时,用来获取用户订阅消息的订阅状态 success(res) { console.log('getSetting', res); if (res.subscriptionsSetting.mainSwitch) { const moIdState = res.subscriptionsSetting?.itemSettings?.['消息id']; // 用户同意的消息模板id if (moIdState === 'accept') { // 同意了消息推送 } else if (moIdState === 'reject') { Taro.showModal({ title: '提示', content: '您已拒绝接受订阅消息,如需订阅消息,请到小程序设置中开启', showCancel: true, success(res) { if (res.confirm) { Taro.openSetting({ withSubscriptions: true, success(res) { console.log('openSetting', res); }, fail(err) { console.log('err', err); } }) } } }); } } else { Taro.showModal({ title: '提示', content: '快点给我权限', showCancel: true, success(res) { if (res.confirm) { Taro.openSetting({ withSubscriptions: true, success(res) { console.log('openSetting', res); }, fail(err) { console.log('err', err); } }) } } }); } // 我们需要判断的是res.subscriptionsSetting.itemSettings这个字段 // 假设你的模板id为"abcd",itemSettings里,如果没有名为abcd的属性,表明用户还未订阅过消息 // 如果有名为adcd的属性,且属性值为reject,表明用户拒绝订阅该消息 // 如果有名为abcd的属性,且属性值为accept,表明用户已接受该订阅消息 console.log(res.subscriptionsSetting.itemSettings) } }) Taro.requestSubscribeMessage({ tmplIds: ['消息id',], // 模板id列表 success(res) { console.log('res1', res); }, fail(err) { console.log('err1', err); } }); }
怎么能在用户前端处理一下不,怎么搞得又要动代码啊,都半年过去,官方不出来解决一下嘛?
触发静默订阅的逻辑,能具体说一下步骤吗?
调出用户的设置,用户手动打开