收藏
回答

小程序里调用订阅通知,只能通过按钮调用吗?

今天遇到一个奇葩的问题,我在录入患者资料以后需要告知对方一些信息(如:就诊时间),我再保存以后调用授权API,就调用失败:

db.doc(this.data._id)
        .update({data})
        .then(()=>{
          wx.showToast({
            title: '数据修改成功',
            icon: 'success',
            duration: 1500,
            success:()=>{
              // this.pageTo('', 1500)
              this.saveEditMessage() // 调用授权接受消息函数
            }
          })
        })


我以为是自己消息函数有问题,然后使用按钮调用,然后就可以:

<button type="primary" bindtap="saveEditMessage">授权</button>


调用授权(简化):

saveEditMessage(){
    wx.requestSubscribeMessage({
          tmplIds: [tmplIds],
          success: res => {
            console.log('订阅消息 成功:' + res);
          },
          fail: err => {
            console.error("订阅消息 失败:" + err);
          }
        })
  }


这是我代码的问题还是小程序故意设置这种要求??如果是,实在想不通为什么要这样搞。

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

3 个回答

  • 一笑皆春
    一笑皆春
    06-26

    是的,需要用户点击事件里才能授权成功

    06-26
    有用 1
    回复 1
    • 林*화림
      林*화림
      06-26
      哈哈,真有这种奇葩限制。好的谢谢
      06-26
      回复
  • showms
    showms
    06-26

    有些api是需要用户主动触发。你可以在触发成功回调里面做业务处理

    06-26
    有用
    回复
  • 朱兆恩(易做图)
    朱兆恩(易做图)
    06-26

    1,需要点按钮订阅

    2,尽量标明是订阅通知

    3,配合后端判断入库openid,不然可能1次接收到多条同样的信息。

    06-26
    有用
    回复
登录 后发表内容