返回

小程序云开发实现订阅消息推送!

前端

在小程序中使用云开发实现订阅消息推送,可以实现当用户留言后,博主回复时,通过微信订阅消息第一时间通知用户,并提供直接跳转到该篇留言的页面。

实现步骤如下:

  1. 在小程序中申请订阅消息模板。

在小程序后台管理中,找到“订阅消息”功能,申请一个新的订阅消息模板。

  1. 在云开发函数中处理用户留言回复。

当用户留言后,博主回复时,需要在云开发函数中处理。

// 云函数入口函数
exports.main = async (event, context) => {
  // 获取用户留言的ID
  const messageId = event.messageId;

  // 获取博主的回复内容
  const replyContent = event.replyContent;

  // 查询用户留言的详细信息
  const db = cloud.database();
  const message = await db.collection('messages').doc(messageId).get();

  // 获取用户的OpenID
  const openId = message.data.openId;

  // 发送订阅消息
  const result = await cloud.openapi.subscribeMessage.send({
    touser: openId,
    templateId: 'xxxxxxxxx',
    page: 'pages/message/detail?id=' + messageId,
    data: {
      keyword1: message.data.content,
      keyword2: replyContent,
      keyword3: new Date().toLocaleString(),
    },
  });

  return result;
};
  1. 在小程序页面中订阅消息。

在小程序页面中,需要订阅消息。

// 页面初始化时订阅消息
Page({
  onLoad() {
    wx.requestSubscribeMessage({
      tmplIds: ['xxxxxxxxx'],
      success(res) {
        console.log('订阅消息成功', res);
      },
      fail(err) {
        console.log('订阅消息失败', err);
      },
    });
  },
});
  1. 在小程序页面中接收订阅消息事件。

在小程序页面中,需要接收订阅消息事件。

// 页面接收订阅消息事件
Page({
  onMessage(res) {
    console.log('收到订阅消息', res);
    wx.navigateTo({
      url: '/pages/message/detail?id=' + res.messageId,
    });
  },
});

通过以上步骤,即可实现小程序云开发订阅消息推送。