关于小游戏订阅消息的解读

  • 2019 年 10 月 6 日
  • 筆記

最近有点忙,更新慢了,今天随机解读一个小游戏的新特性。

相信不少同学已经收到小游戏“订阅消息能力”的内测邀请了,这个能力简而言之就是:

让小游戏能给用户发服务通知。

整个部署过程很简单,但实现的效果却是很重要,未来可以实现诸如“排名下降提醒”、“体力恢复提醒”、“活动开启通知”、“任务完成提醒”等一系列有助于回流的功能,显然能为小游戏提高留存。

所以花叔专门做了一个技术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)      }  })

代码执行后,微信聊天框就会收到一个服务通知,点击该服务通知可再次回到小游戏中

至此,那就能实现小游戏的消息推送功能了,整个过程很简单,相信这个功能很快就会出现在各大小游戏中。