小程序消息推送,订阅消息的实现,定时推送订阅消息功能( 二 )


文章插图
 

  • 然后看下调用这个云函数的地方
    如果用户没有授权,我们推送会报如下错误如果用户授权过,我们就可以成功推送了,推送后的打印日志如下还记得我们真机上的授权吗,如果用户只是点击了允许,没有选择一直允许,那我我们在推送成功一次后,如果再次推送,就需要用户重新授权 。否则,还是会犯这个错误的所以我们用户点击一次允许,我们就可以推送一次消息,比如,我点击了4次允许那么我就可以成功地推送4次
效果图
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
可以看到,我们成功地收到 上课提醒的模板消息,点击进去,就是我们具体的推送内容
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
其实我这是连续收到了4条消息,因为我点击了4次允许推送,所以就可以成功地推送4次 。
到这里我们就完整地实现模板消息推送功能了,下面我把主要代码贴给大家,大家也可以私信我获取完整源码 。
  • index.wxml
<button bindtap="shouquan" type='primary'>获取订阅消息授权</button><button bindtap="getOpenid">获取用户的openid并推送消息</button>
  • index.js
//编程小石头wechat:2501902696Page({//获取授权的点击事件shouquan() {wx.requestSubscribeMessage({tmplIds: ['CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU'], //这里填入我们生成的模板idsuccess(res) {console.log('授权成功', res)},fail(res) {console.log('授权失败', res)}})},//获取用户的openidgetOpenid() {wx.cloud.callFunction({name: "getopenid"}).then(res => {let openid = res.result.openidconsole.log("获取openid成功", openid)this.send(openid)}).catch(res => {console.log("获取openid失败", res)})},//发送模板消息到指定用户,推送之前要先获取用户的openidsend(openid) {wx.cloud.callFunction({name: "sendMsg",data: {openid: openid}}).then(res => {console.log("推送消息成功", res)}).catch(res => {console.log("推送消息失败", res)})}})
  • 推送对应的云函数
//编程小石头wechat:2501902696const cloud = require('wx-server-sdk')cloud.init()exports.main = async(event, context) => {try {const result = await cloud.openapi.subscribeMessage.send({touser: event.openid, //要推送给那个用户page: 'pages/index/index', //要跳转到那个小程序页面data: {//推送的内容thing1: {value: '小程序入门课程'},thing6: {value: '杭州浙江大学'},thing7: {value: '第一章第一节'}},templateId: 'CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU' //模板id})console.log(result)return result} catch (err) {console.log(err)return err}}后面我会分享更多小程序相关的知识出来,请持续关注 。
注意:授权一次,只能发送一条消息 。
二,定时发送消息我们上面的用户授权和发送消息都需要手动点击才可以实现发送 。但是有时候我们需要定时提醒用户,比如做的闹钟小程序,要定时提醒用户,该怎么做呢,接下来我们就来实现定时发送消息的功能 。
  • 注意
    当然了这里还是要先授权才可以发送消息的,同样也是授权一次可以发送一条消息,所以这里要尽量先多授权几次
2-1,什么是定时触发器我们实现定时发送的功能就是要用到云函数里的定时触发器,官方介绍如下 。
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
大家有时间可以自己去仔细品尝下
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/triggers.html
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
官方已经教我们怎么写定时触发器了
2-2,定时触发器时间设置规则建议大家仔细去读下官方文档 。
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
下面是官方给出的一些示例
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
我这里就取用每隔5秒通过该定时触发器调用下我们的云函数,实现订阅消息的发送 。
2-3,添加定时触发器添加步骤如下图,我们需要新建一个云函数timer
小程序消息推送,订阅消息的实现,定时推送订阅消息功能

文章插图
 
我们要在timer云函数里调用我们的fasong云函数来实现发送功能


推荐阅读