小程序支持订阅消息:打破小程序对模版消息的限制,让商家与用户更加灵活的互动。通过用户的授权或者主动发起订阅,商家可以根据时间规律或者业务节点规律为用户订阅消息提醒,帮助商家唤醒用户提高转化和粘性,也为用户提供更好的使用体验。
传统推送模式
以往/目前的小程序,向用户推送消息,需要采用一个比较麻烦的能力:模板消息
具体步骤如下:
- 小程序前端代码,采用表单或者支付功能,获取到用户的推送码
- 小程序后端需要获取access_token,并维持其有效性
- 后端通过用户openId和上边推送码,结合小程序模板id+access_token,请求给微信推送API接口,完成一次推送流程
说起来挺简单的,但操作起来却很浪费时间和精力。
所以后来,就有了一些推送平台的出现。
比如我们的古人云小程序推送平台(https://mssnn.cn),能更简单地辅助开发者集成模板推送功能。
但是呢,这个模板消息,也是有弊端的:
- 需要用户主动触发
- 有时效性,7天内用户如果无触发操作,则无法向该用户推送消息了
什么是订阅消息
为了解决上边的弊端问题,微信又推出了一种更高效的推送方式:订阅消息推送。
简单的说,就是只需用户点击一次推送授权(类似获取头像等授权)之后,开发者就可以不需要经过其他如收集推送码等操作,在任意时间(大概是这样,没有时间限制)都可以向该用户下发小程序卡片消息!
当然,也是会有限制的,比如不能频繁下发等。
这个非常棒的能力,目前仍在内测中,我们也暂时无法获知已经使用上线的案例。除了官方的小程序示例。
功能实现探索
经过一番资料搜索整理,包括官方的开发文档,都未找到相关的资料。
那么,该功能是如何实现的呢?
我们深入研究了官方的小程序示例源码。
该小程序是开源的,项目地址是:
https://github.com/wechat-miniprogram/miniprogram-demo
通过对订阅消息页面的代码整理,我们发现了关键点:
首先,是采用open-type为subscribe的button组件,来获取用户的授权
然后,我们追踪一下具体的推送函数dosendmsg:
subscribeMessageUrl变量在config.js配置文件中:
所以。。其实。。
我们也获取不到后端的具体实现代码了
但我们终究还是明白了前端是如何实现的这个订阅消息功能,这对广大开发者来说都是一件值得关注的好事!
我们将会持续关注该能力,争取第一时间为大家提供具体的消息!
网友评论