收藏
回答

wx.requestSubscribeMessage 不达预期

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.requestSubscribeMessage 微信安卓客户端 7.0.18 2.9.2

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

requestSubscribeMessage(tmplId) {
	return new Promise((resolve, reject) => {
		wx.requestSubscribeMessage({
			tmplIds: [tmplId],
			success: res => {
				resolve(res[tmplId] == 'accept')
			},
			fail: res => {
				if (res.errMsg == "requestSubscribeMessage:fail cancel") {
					resolve(false)
				} else {
					reject(res)
				}
			}
		})
	})
}

一次性订阅消息 工作正常。

长期订阅消息 用户同意工作正常,如果用户拒绝则直接进入 fail, errMsg 内容为requestSubscribeMessage:fail cancel,请问是设计如此还是代码执行没达到预期?

回答关注问题邀请回答
收藏

1 个回答

  • 华个圈圈
    华个圈圈
    2020-09-25

    官方设定是这样,用户点击取消了相当于你这些订阅消息用户都没订阅

    2020-09-25
    有用
    回复 1
    • lihy
      lihy
      2020-09-26
      我的理解是, 只要正确弹出了权限申请的对话框,不管用户是同意还是拒绝,都应该走success, 只是具体返回值不同【accept、reject、ban】,事实上,一次性订阅消息就是这样工作的。同样长期订阅消息不应该也是这样工作吗? 只要正确弹出了对话框, 不管用户是同意还是拒绝都应该走success,通过参数来区分是同意还是拒绝,而不是走fail。


      重点是官方文档就是这样写的, 通过参数来区分是同意还是拒绝。
      2020-09-26
      回复
登录 后发表内容
问题标签