主题
Skip to content
WARNING
模块名:GameHelper.Subscribe
支持渠道:微信
1. 描述
基于微信的通知渠道,开发者在游戏内,可向用户发起消息订阅。
用户在小游戏中订阅指定的消息内容后,游戏可以通过上报接口定时向用户发送微信通知。
2. 功能设计,订阅模板创建 - 策划,产品,发布
步骤 | 操作人 | 示意图 | 描述 |
---|---|---|---|
订阅弹窗时机确定,模板格式确定 | 策划,产品 | ![]() ![]() | 1. 订阅弹窗:策划需要先确定好好游戏在什么时候弹出订阅弹窗 2. 模板设计:按需设计模板信息,图2中的标题无法修改需要在创建时确定好,详细内容中右边加粗部分由研发传入是可以自定义的 |
模板创建 | 策划,发布 | ![]() ![]() ![]() | 1. 模板选用:在微信后台 功能-> 订阅消息-> 公共模板库里可以选用订阅模板 2. 模板选用:策划根据自己需求先选用适合的模板 3. 模板创建:创建模板时选择合适的关键字,找不到合适关键字可以选择申请新的 4. 模板ID:模板创建完成后,请将模板详情截图贴到飞书任务详情中,艾特策划、产品、研发 |
3. 更新消息提醒
研发使用GameHelper.Subscribe.systemSubscribe
拉起系统订阅弹窗,具体使用方式见接口说明
4. SDK接入 - 研发
4.1 接入流程说明
订阅需要使用到服务器保存,在GameHelper.init初始化时serverData需要传true开启
在策划确定的合适时机调用拉起订阅弹窗接口
subscribe
根据任务需求选择合适时机上报延时的订阅消息发送,
如果相关订阅的事件失效,如本来有个3小时后的体力恢复满的延时消息,但由于玩家操作导致体力提前恢复慢了,可以调用
reportDelete
删除对应上报的延时消息
1.每次调用
subscribe
接口时,会给用户增加一次接收订阅消息的次数,用户只有在有接收次数时才会收到订阅消息提醒,用户手动到设置里拒绝接收会导致次数清零。2.只要
subscribe
接口返回接收订阅时就会增加用户的接收次数,不需要关注是否有订阅弹窗弹出。所以设计订阅的点击事件时,需要考虑重新调用订阅接口的情况给用户添加接收次数
3.系统订阅只需要订阅一次就可以了
4.2 模板信息说明
研发后面调用相关接口时会需要使用到模板信息里的部分信息
模板ID:订阅接口,上报接口都需要用到的参数
详细内容:涉及上报接口data传参,详细使用见具体上报接口
4.3 接口说明
属性
属性 | 类型 | 说明 |
---|---|---|
MiniProgramState | Object | 点击微信收到的订阅消息模板卡片时跳转的小程序类型Deveolper:开发版;Trial:体验版;Formal:正式版;默认为正式版 |
MSG_TYPE | Object | 系统订阅类型 INTERACTIVE: "好友互动提醒", RANK: "排行榜超越提醒", WHATS_NEW: "游戏更新提醒", |
方法
GameHelper.Subscribe.subscribe
拉起订阅弹窗,用户必须订阅后才能接收到订阅消息,且SDK的延时消息上报也会判断用户是否成功订阅
订阅弹窗样式
参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
opt | Object | / | 是 | 订阅接口参数 |
opt的参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
id | string | string[] | / | 是 | 模板详情里的模板ID |
success | (res)=>void | / | 否 | 接口调用成功的回调函数 |
fail | (err)=>void | / | 否 | 接口调用失败的回调函数 |
例
GameHelper.Subscribe.systemSubscribe
拉起系统订阅弹窗
参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
opt | Object | / | 是 | 订阅接口参数 |
opt的参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
msgTypeList | string[] | / | 是 | 系统订阅类型,取值对应MSG_TYPE |
success | (res)=>void | / | 否 | 接口调用成功的回调函数 |
fail | (err)=>void | / | 否 | 接口调用失败的回调函数 |
例
GameHelper.Subscribe.reportAdd
上报一个定时的订阅消息推送
服务端是通过appId+openId+type+sceneId+templateId 组成一个唯一标识符对数据库做增删改查操作。其中sceneId和templateId 由业务层传入,所以删除事件时传入的sceneId和templateId 需要和上报时传入的一致,上报发送的订阅消息只会对当前用户发送
参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
opt | Object | / | 是 | 上报参数 |
opt的参数:
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
sceneId | string | / | 是 | 研发自定义的id,用于分辨消息,sceneId+templateId 确定唯一消息 |
templateId | string | / | 是 | 模板ID,根据发布提供的模板详情获得 |
data | Object | / | 是 | 对应模板里的详细内容![]() |
delayTime | number | / | 是 | 消息发送的时间, 13位时间戳,delayTime不要超过14天 |
page | string | / | 否 | 传入后,点击模板卡片后可以跳转到小游戏里,不配置则无法跳转传入格式: "index?foo=bar" |
miniprogramState | string | / | 否 | 点击微信收到的订阅消息模板卡片时跳转的小程序类型对应MiniProgramState 的值 |
例
GameHelper.Subscribe.reportDelete
删除上报过的定时消息
参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
opt | Object | / | 是 | 上报参数 |
opt的参数:
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
sceneId | string | / | 是 | 研发自定义的id,用于分辨不同消息,sceneId+templateId 确定唯一消息 |
templateId | string | / | 是 | 模板ID,根据发布提供的模板详情获得 |
例
GameHelper.Subscribe.isSubscribeAccept
判断用户是否订阅了某个对应模板
参数
属性 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
templateId | string | / | 是 | 模板ID |
返回值
属性 | 类型 | 说明 |
---|---|---|
value | boolean | 用户是否订阅了传入模板ID对应的模板 |
例
4.4 整体接入流程示例
效果演示
点我快速对接


