好像蛮久没写有关代码类的文章了 之前写过关于公众号模板消息开发的 聊聊公众号[服务号]的模板消息功能开发-1 聊聊公众号[服务号]的模板消息功能开发-2 有兴趣的可以返回去看看 今天聊聊微信小程序的 订阅消息 先看看效果 某幸上比较容易看到效果 大概是下面截图这样

一般品牌方会用这个 在客户授权通过的情况下 给客户推送活动促销 商品促销等信息 这个功能很早小程序各种爆发的时候 超级好用 可以给用户各种乱推信息 也没什么消息数量限制 真怀念那会 后来因为有部分开发者滥用 好像说蛮多用户投诉 然后这个功能就被官方各种阉割各种改动...
现在开发的话 大概流程是 小程序这边 界面上留个按钮
[就类似我们给用户写的 客户下单配送的订单 但是付款成功之后 如果用户没关注公众号 就没法实时推送订单的状态变化 类似 订单已开始配送 配送师傅已取货 这样]
那用户付款成功之后 按钮上显示的 大致是 跟踪订单状态 用户点击之后 会弹出一个授权框 只有在用户点击 允许授权的情况下 订阅消息才能发送成功 而且订阅消息 如果有3个 比如说 订单取货 订单开始配送 订单转派 小程序这边会一次性弹出3个授权开关... 只要有一个 没通过授权 消息发送 就没办法触达 嗯 就比较坑 官方说法是 保护用户不被打扰
大概的意思就是这样 先说下程序这边的开发 官方的开发文档是这个
进入自己的公众开放平台之后 左边菜单

进入之后 在公共模板库里 选择需要通知客户的消息模板 可以搜索模板 点击选用 在新弹出的页面里 选择字段 左边会有效果预览 还可以字段排序 填一下大概的场景说明 提交就ok

提交完之后 和公众号的模板消息一样 会有模板ID和字段详情 复制一下模板ID 小程序这边有一个 调起订阅消息授权的方法 官方文档是下面这个
代码的话是这样 tmplIds参数传的是一个数组 如果一次性有3个ID 可以填入3个ID
wx.requestSubscribeMessage({ tmplIds: ['xxxxxxxxxxxxxxxxxxxxxxxx'], success(res) { console.log('发送新的订阅消息', res); }})
官方解释是这样的

然后上面的方法 用个Button写个点击方法 用户点击之后 便会调起授权接收订阅消息[截图是在模拟器上的效果]

真机是这个截图

用户允许授权之后 小程序的方法会有成功回调 可以通过回调判断下通知服务端那边 决定是否正常给客户发送消息 回调里如果有多个ID 会单独返回那个ID的模板客户授权接收了 很容易判断
{ errMsg: "requestSubscribeMessage:ok" xxxxxxxxxxxxxxx: "accept"}
小程序这边的代码差不多就这样 明天接着写服务端的代码
保持好奇 不断进步 下期见~