最近有点忙,更新慢了,今天随机解读一个小游戏的新特性。
相信不少同学已经收到小游戏“订阅消息能力”的内测邀请了,这个能力简而言之就是:
让小游戏能给用户发服务通知。
整个部署过程很简单,但实现的效果却是很重要,未来可以实现诸如“排名下降提醒”、“体力恢复提醒”、“活动开启通知”、“任务完成提醒”等一系列有助于回流的功能,显然能为小游戏提高留存。
所以花叔专门做了一个技术demo,研究了它的具体用法,完整的演示视频在这里:
接下来本文主要介绍一下它的应用场景、使用条件和使用方法。
应用场景:
该特性由两项功能组成,分别是“消息订阅”以及“消息发送”功能,可用于各种游戏功能的提醒,但仅限于用户主动触发的订阅场景。
使用条件:
1.需用户主动点击游戏内某按钮或元素进行订阅
2.订阅提示框样式无法自定义
3.只能用官方给定的通知模板
使用方法:
1. 进入mp后台,开通“订阅消息”功能(目前在灰度测试,部分小游戏的mp后台还看不到这个菜单项)。点击菜单栏左侧菜单中“功能”栏目下的“订阅消息”:
依照提示,选择行业栏目进行开通
2. 开通成功后,可以开始选择并制作模板。
具体步骤如下:
首先在模板库中选用现成的订阅模板(目前貌似还没法申请自定义模板),
点击“选用”后,可以配置模板要出现的内容:
订阅模板制作完毕(不能修改)后,会得到一个模板ID
3. 在小游戏页面中给元素定义touchend事件(不能直接调用,需要在用户的触摸结束行为的回调中调用),在事件中执行以下代码:
关键代码:
wx.requestSubscribeMessage({
tmplIds: [id],//刚申请的订阅模板id
success(res) {
// res{
// errMsg: "requestSubscribeMessage:ok",
// zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'accept'
// EXo0x_A2wpFf1rllR2ed4KkPzvVCfade-WyQczL-nuz: 'reject'
// }
if (res[id] == 'accept') {
//用户同意了订阅
wx.showToast({
title: '订阅成功'
})
} else {
//用户拒绝了订阅或当前游戏被禁用订阅消息
wx.showToast({
title: '订阅失败'
})
}
},
fail(res) {
console.log(res)
},
complete(res) {
console.log(res)
}
})
页面上点击该元素的时候会弹出系统的默认弹框:
4.只要用户点击了“允许”,那么开发者在服务端调用官方的“消息发送”接口代码
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + token,
method: 'post',
data: {
"touser": "oQJaf4t9ckXHDJprWcsolMcPUYks",
"template_id": id,
"page": "index",
"data": {
"number2": {
"value": "1"
},
"number3": {
"value": "2"
},
"date4": {
"value": "2019年09月18日"
}
}
},
success(e){
console.log(e)
}
})
代码执行后,微信聊天框就会收到一个服务通知,点击该服务通知可再次回到小游戏中
至此,那就能实现小游戏的消息推送功能了,整个过程很简单,相信这个功能很快就会出现在各大小游戏中。