【微信小程序】订阅消息的一次性订阅 vs 长期订阅?其实一次性订阅也能实现长期发布订阅消息_微信小程序一次性订阅和长期订阅
文章目录
- 前言
-
- 为何要订阅消息 & 订阅的好处
- 一、一次性订阅 & 长期订阅
- 二、操作步骤
-
- 1. 创建模板
- 2. 前端授权订阅消息
- 3. 后端发送订阅消息
-
- 引入依赖
- 配置 application.yaml
- 定义实体类
- 发送请求
- 拓展实现
- 总结
- 细节
-
- 1. 为什么发请求不传 ACCESS_TOKEN?
- 2. 我怎么知道用户授权订阅消息了没?
前言
为何要订阅消息 & 订阅的好处
相信你也曾被微信的服务通知
所骚扰过(bushi)…
没错,微信的订阅消息
会发送到用户的服务通知
处;
而服务通知
不同于公众号
/服务号
等通知;
“服务通知”:属于
强提醒
,会以大红点
的形式出现,而且还会在手机/电脑提醒消息
;“公众号/服务号”:属于
弱提醒
,只会以小红点
的形式出现,不会在手机/电脑中提醒。
如图(对比):
因此,订阅消息的好处就不言而喻了,最显然的就是:提高用户的转化率
一、一次性订阅 & 长期订阅
一次性订阅:用户订阅后,在任意时间发一次消息给用户,不能发第二次。
长期订阅:用户订阅后,可长期发送多条信息。(但是这个要求行业和资质高,只有特定的几个类目才能选)
那么如何实现一次性订阅也能长期发送多条消息呢?
如图:
当你调用wx.requestSubscribeMessage
接口时(最多可传入3个模板id),就会触发授权弹窗。
注意!细节来了!
弹窗授权为发送一次以下消息
(即一次性订阅);
而下方的总是保持以上选择
是默认的选择项(字体这么小而且还是灰色的,是不是不容易发现0.0);
简单来讲:授权
发送一次以下消息
+总是保持以上选择
=只要你授权一次,我就可以无限次发订阅消息
但是需要用户手动开启授权模板,如下图留言通知/榜单更新通知/新活动通知
的授权按钮默认是关闭的
虽然说是这么说,但是可以通过诱导(引导)用户来开启,如:不开启可能会导致功能无法使用…
(懂的都懂)
二、操作步骤
接下来是简单的代码实现,具体的可以自己添加更多的业务逻辑
1. 创建模板
进入微信小程序后台—“基础功能”—“订阅消息”,进入\"公共模板库\"挑选合适的模板后,得到模板ID。
2. 前端授权订阅消息
微信官方文档:小程序订阅消息(用户通过弹窗订阅)开发指南
使用
uni.requestSubscribeMessage
发起授权,传参为模板ID,若有多个则需要传数组。
(最多授权3个模板ID)
注:开发时使用了uni-app
框架,微信官方的API为 wx.requestSubscribeMessage
,效果是一致的。
代码如下(示例):
Tip:可以在关键业务按钮埋下
授权订阅消息
代码让用户授权,但也要注意用户体验。
// 创建问题const createQuestion = async () => { // 检查模板消息订阅权限 try { const subscribeResult = await uni.requestSubscribeMessage({ tmplIds: [ \'模板ID-1xxxxxx\', \'模板ID-2xxxxxx\', ], }) if (subscribeResult.errMsg === \'requestSubscribeMessage:ok\') { // 用户同意了订阅或已经订阅过,继续创建问题 await handleCreateQuestion() } else { // 用户拒绝了订阅,显示提示后继续创建 uni.showModal({ title: \'订阅提醒\', content: \'为了及时接收回复通知,建议您开启订阅消息\', confirmText: \'确定\', success: async (res) => { if (res.confirm) { // 用户点击确定,继续创建问题 await handleCreateQuestion() } }, })