腾讯云微搭低代码 实现小程序订阅消息推送

订阅消息是为了召回用户以及推送消息提醒,例如外卖小程序的订单派送消息、电商小程序的支付提醒、物流消息、媒体类小程序的实时热点、话题推送等场景,在日常生活中订阅率都是比较高的。

相关产品
腾讯云微搭低代码 产品页,含版本规格、价格与购买入口。

一、方案思路

基于微信平台限制,需要用户主动单击授权之后才能获取下发消息权限,所以首先要让用户主动触发订阅,当用户在小程序内单击特定按钮后会弹出申请订阅弹窗,同意后小程序可在后续任意时间给该用户推送服务通知。

·发送订阅消息需要用户先进行授权。

·授权一次可发送一条服务通知,可以重复授权,每一次授权都会单独保存为一条记录。

·推送时间不受限制。

·用户自主选择接受,下发的权利掌握在用户手上。

·推送消息动作可以利用微搭平台已集成小程序 APIs,在控制台或者应用内可以新建 APIs(微搭 API 开放服务介绍),调用 APIs 发送订阅消息方法,即可以使用对应的小程序服务接口。

小程序 APIs 方法列表。

二、案例实践

1. 前往 微信公众平台 申请消息订阅模板,订阅消息分为一次性订阅和长期订阅,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,模板添加成功后,获取模板 ID。

模板参数展示:

2. 编辑器场景搭建,在编辑器中新建组件和自定义变量、方法。

3. 自定义 JS 方法 sendMsgOuth() 获取订阅消息授权,调起订阅弹窗,涉及小程序 API wx.requestSubscribeMessage。

export default function ({ event, data }) { try { wx.requestSubscribeMessage({ tmplIds: ['6zwS1fsv19V7vqhbnq9EAVLFAs6ykWbCmzlW4HoJpC4'],//订阅消息模板ID success(res) { console.log(res) }, fail(res) { console.log(res) } }) }catch (e) { console.log(e) }}

订阅授权弹窗真机效果:

注意:说明:

注意:触发用户订阅,微信小程序提供的 API 是:wx.requestSubscribeMessage,触发条件必须是用户点击行为(bindtap 事件)或发起支付回调后才能调起订阅消息界面。当用户在小程序内点击特定按钮后会弹出申请订阅弹窗,同意后小程序可在后续任意时间给该用户推送服务通知。

4. 推送消息按钮组件绑定点用数据源方法事件。

·选择小程序开放能力 APIs 方法发送订阅消息。

·APIs 方法发送订阅消息相关展示。

APIs 方法发送订阅消息入参结构请参见小程序产品文档 订阅消息|发送订阅消息。

根据此次实践消息模板 ID,参数模板内容 data 数据格式如下:

{ "date1": { "value": $w.DateText($w.Now(), 'YYYY-MM-DD HH:mm') }, "character_string3": { "value": "192.168.x.x" }, "thing4": { "value": "文档更新" } , "thing7": { "value": "新增文档3篇" }, "thing6": { "value": "weda自动触发" } }

注意:说明:

注意:data 数据内容可根据模板和实际场景进行相应调整,更多说明请参见 小程序|订阅消息。

注意:假设在应用中传递了消息内容相关变量 var1 , var2 , var3 , var4 , var5,则 data 数据格式如下:

注意:{ "date1": { "value": var1 }, "character_string3": { "value": var2 }, "thing4": { "value": var3 } , "thing7": { "value": var4 }, "thing6": { "value": var5 } }

·当前用户 openid 可以通过微搭内置方法 $w.auth.currentUser.openId 进行获取,订阅消息返回结果赋值自定义变量 sendMsgResult,在组件上进行展示。

三、真机效果

·绑定小程序,发布当前应用。

·效果预览:

获取用户订阅消息授权,推送消息。

订阅消息服务通知。

四、注意事项

·调起客户端小程序订阅消息界面 wx.requestSubscribeMessage 一次调用最多可订阅 3 条消息,即 tmplIds 最多为 3 个(iOS 客户端 7.0.6 版本、Android 客户端 7.0.7 之后版本支持)。

·一次性模板 ID 和永久模板 ID 不可同时使用。

·一次授权调用里,每个 tmplId 对应的模板标题不能存在相同的,若出现相同的,只保留一个。

·用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面。

·当用户勾选了“总是保持以上选择”时,那么将再也不会唤起这个弹窗。同时,如果选择“拒绝”,那么以后每次调用这个 API 的时候,都会自动拒绝;如果选择“允许”,则每次都会自动允许授权。

赞 (0)
上一篇 4天前
下一篇 4天前