0
点赞
收藏
分享

微信扫一扫

wx.requestSubscribeMessage微信小程序订阅消息总结

1,先上官方文档

小程序订阅消息官方文档

2,消息类型

    (1) 一次性订阅消息

    用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。

    (2) 长期订阅消息

    用户订阅一次后,开发者可长期下发多条消息。
    目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放

     (3) 设备订阅消息

属于长期订阅消息类型,且需要完成「设备接入」才能使用
经过微信认证的非个人主体小程序。面向智能硬件生产企业或开发者

3,主要流程

    (1). https://mp.weixin.qq.com 登录小程序后台获取消息模板,没合适的模板,可申请添加新模板,审核通过后可使用。

    (2). 前端调wx.requestSubscribeMessage(Object object)接口,唤起客户端小程序订阅消息界面,返回用户订阅消息的操作结果。

    当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。
wx.getSetting
在这里插入图片描述

3.服务端调用接口下发订阅消息

详见服务端接口 subscribeMessage.send

注意事项

1,授权弹窗需要用户点击才能拉起,比如直接在 onload 方法中是无法调起的,可以在需要拉起的地方做一个弹窗询问,引导用户点击拉起授权

2,建议直接在真机测试,开发工具是没有同时订阅二个消息的

3,只能一次订阅三个消息,永久和一次性消息是不能同时订阅的

扩展(封装)

/**
 * 订阅消息
 * @param { Array } [tmplIds]
 * @returns { Promise<Object> }
 */
export const subscribeMessage = (tmplIds = []) => {
    console.log('tmplIds',tmplIds);
  return new Promise((resolve, reject) => {
    wx.requestSubscribeMessage({
      tmplIds,
      success(res) {
        // 订阅成功
        if (res[tmplIds[0]] === 'accept'||res[tmplIds[1]] === 'accept') {
          resolve(res)
        } else {
          reject(res)
        }
      },
      fail: reject
    })
  })
}
举报

相关推荐

0 条评论