抽奖小程序解析,如何实现订阅消息推送?

前言

最近在研究一个抽奖小程序,使用过抽奖小程序的同学都知道,在小程序开奖都时候都会有一个提醒让用户点击查看结果。查看结果后不管是否中奖,还会引导用户去抽其他的奖品,这一招可谓是一石二鸟,活跃和留存都做到了。

效果

抽奖小程序解析,如何实现订阅消息推送?_第1张图片

步骤

想要实现发送模版消息有以下步骤:

  1. 管理后台申请模版
  2. 获取用户推送授权
  3. 进行推送订阅消息

实现

管理后台申请模版

进入后台选择订阅消息菜单,点击添加按钮

抽奖小程序解析,如何实现订阅消息推送?_第2张图片


搜索关键词,选中你需要的模版

抽奖小程序解析,如何实现订阅消息推送?_第3张图片


可自定义顺序和勾选需要的字段

抽奖小程序解析,如何实现订阅消息推送?_第4张图片


选中成功后

抽奖小程序解析,如何实现订阅消息推送?_第5张图片


在这里我们可以获取到【模板ID】,这个在授权的时候需要用到。

获取用户推送授权

在一个关键环节获取授权,比如我的抽奖小程序就是在点击抽奖按钮时获取的。

// 用户点击抽奖
lottery: function () {
    let that = this
    wx.requestSubscribeMessage({
      tmplIds: ['模版ID'],
      success(res) {
        console.log(res);
        that.onParticipate();
      },
      fail(err) {
        console.log(err);
        that.onParticipate();
      }
    })

用户同意一次授权就可以发起一次消息,这个是累计和消耗的。

进行推送订阅消息

云开发发送代码

const sendMessageRes = await cloud.openapi.subscribeMessage.send({
            touser: subscribe.openid,
            page: '/pages/index/index?lotteryId=' + subscribe.lotteryId,
            lang: 'zh_CN',
            data: {
              thing4: {
                value: subscribe.rewards.map(reward => reward.name + '×' + reward.winners).join(";")
              },
              time3: {
                value: subscribe.endTime
              },
              thing2: {
                value: '您参加的抽奖正在开奖,点击查看'
              }
            },
            templateId: subscribe.subscribeId,
            miniprogramState: 'developer'
            // miniprogramState: 'trial'
            // miniprogramState: 'formal'
          });

发送参数详细可见:官方文档
在这里需要注意就是data的参数需要对应上模版详细,如上面代码中的thing4,time3,thing2 需要对应。

抽奖小程序解析,如何实现订阅消息推送?_第6张图片

总结

善用订阅消息可以让你的用户获得很好的体验同时又能留存。如果你觉得这个推送次数不太够的话,推荐使用引导用户关注服务号可以通过推送接口无限给用户推送小卡片。

欢迎和我交流小程序

自己录的一些开源小程序视频:敲代码的帮帮

你可能感兴趣的:(小程序,微信小程序,前端,移动开发)