一、功能和消息类型可查看官网文档、
链接如下:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
二、操作流程
步骤一:【前端】获取模板 ID
在微信公众平台手动配置获取模板 ID:
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
步骤二:【前端】获取下发权限
一次性订阅消息、长期订阅消息,详见接口 wx.requestSubscribeMessage
设备订阅消息,详见接口 wx.requestSubscribeDeviceMessage
代码:
// 获取到tmpid
const tmpid = "dkEmEk5i4BYmMW9pXu1ovGAbC_VCogzKPKpGU-xxxxx";
// 调用方法
wx.requestSubscribeMessage({
tmplIds: [tmpid], // 需要订阅的消息模板的id的集合,一次调用最多可订阅3条消息
success(res) {
console.log('res', res)
if (res[tmpid] === 'accept') {
console.log("订阅成功!")
} else if (res[tmpid] === 'reject') {
console.log("订阅失败")
}
},
fail(err) {
console.log(err, '订阅消息失败');
}
})
步骤三:【后端】调用接口下发订阅消息
一次性订阅消息、长期订阅消息,详见服务端接口 subscribeMessage.send
设备订阅消息,详见服务端接口 hardwareDevice.send
注意事项
用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。
订阅消息事件推送
1、当用户触发订阅消息弹框后,用户的相关行为事件结果会推送至开发者所配置的服务器地址或微信云托管服务。
2、当用户在手机端服务通知里消息卡片右上角“…”管理消息时,相应的行为事件会推送至开发者所配置的服务器地址或微信云托管服务。(目前只推送取消订阅的事件,即对消息设置“拒收”)
3、调用订阅消息接口发送消息给用户的最终结果,会推送下发结果事件至开发者所配置的服务器地址或微信云托管服务。
订阅消息添加提醒
用户在订阅小程序长期订阅消息时,可以根据自己的使用情况添加提醒。添加后,用户在收到消息时,在微信内将由横幅通知提醒。
当用户添加了提醒,开发者通过wx.getSetting获取的该模板的订阅状态为’acceptWithForcePush’。
订阅弹窗样式如下: