收藏
回答

wx.getSetting返回异步结果后无法正常调用设备消息订阅授权接口

问题类型 API/组件名称 终端类型 微信版本 基础库版本
Bug requestSubscribeDeviceMessage 微信安卓客户端 8.0.70 3.15.1

需求:在拥有3+个的消息模板订阅的情况下,实时根据用户的消息订阅状态,过滤已授权的消息模板,点击按钮后弹出还没订阅的前3条消息模板的订阅授权



在代码里异步调用wx.getSetting后,获取异步结果后再调用消息订阅授权接口,失败,

返回wx.requestSubscribeDeviceMessage fail]:  {errMsg: "requestSubscribeDeviceMessage:fail can only be invoked by user TAP gesture."}


但是如果把wx.getSetting的调用删除,异步调用云端接口,是正常的


期望:调用wx.getSetting后,获取异步结果后可以成功调用消息订阅授权接口

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

2 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    04-15

    你好,只能同步在点击回调里调用requestSubscribeDeviceMessage

    04-15
    有用
    回复
  • 。
    发表于小程序端
    04-14

    订阅消息的api只能用户手动点击,而且是用户点击一次可收到一次消息

    04-14
    有用
    回复 3
    • 。
      发表于小程序端
      04-14

      queryWxHardwareDeviceMessageInfo(),只能放在按钮点击回调里面

      04-14
      回复
    • Worldsoon@永恒
      Worldsoon@永恒
      04-15
      我的是放在点击回调里面,如果是放在异步调用wx.getSetting或者云端接口,都不行的话,我可以理解,是异步调用的原因;;;;;但是现在是只有wx.getSetting的调用后不行,就有点疑问了
      04-15
      回复
    • 。
      发表于小程序端
      04-15回复Worldsoon@永恒

      有可能是wx.getSetting(),await阻塞导致点击事件上下文消失,太长时间阻塞是会导致点击事件上下文消失导致触发拦截

      04-15
      回复
登录 后发表内容