微信小程序云开发实现微信小程序订阅消息服务通知教程
申请模板云函数小程序页面调试(我这里就直接真机测试了:)申请模板
1、在这边菜单栏,找到“功能”里的“订阅消息”
2、在“公共模板库”里面选取自己想要的模板,
选取自己想要的消息即可。
云函数
微信小程序需要云开发的!
1、在云函数文件夹下,右键新建Node.js云函数(我记得没错的话,好像要下node.js,我也忘了。可以上网搜一搜。)
2、我这里建立了一个sende,然后在里面的index.js编写(在此之前需要先把自己云开发环境配好,在app.js,然后云函数文件夹右键第一个当前环境也要):
index.js代码:
// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()try{exports.main = async (event, context) => {const result = await //event是index.js传来的datacloud.openapi.subscribeMessage.send({touser: event._openid,//发送通知给谁的openiddata: {thing1: {value: event.me},thing2: {value: event.name}},templateId: event.templateId,//模板IDminiprogramState: 'developer',page:'pages/index/index'//这个是发送完服务通知用户点击消息后跳转的页面})return event.startdate}} catch (err) {return err}
这里面的thing1数据赋值,是看着自己的模板来的
3、云端创建与部署,如果提示wx-server-sdk什么问题的(具体也可以上网找一找,当时我也是上网解决的),用终端打开,然后输入
npm install --save wx-server-sdk@latest(前提是node.js下载了)
小程序页面
index.wxml:(wxss我就不发了,不影响,只是页面美观而已,就js能实现就可以了。)
<view bindtap="requestSubscribeMessage">接收服务通知</view><view bindtap="sendSubscribeMessage">发送服务通知</view>
index.js:
允许发送服务通知:
//允许接收服务通知async requestSubscribeMessage() {const templateId = '33CZgCi9EtThT5WwfeOspZ0qQqxi4QgbYtlGUTx6KrQ'//填入你自己想要的模板ID,记得复制粘贴全,我自己因为网页没开全,结果浪费半小时// const templateId2='9iF2Sid0tiFEsD3SWefVzcsNSuSUPqrBFYBDo1zGnEo'//可以多个模板ID,然后加入下面的tmplIds,现在一个小程序最多三个// const templateId3='B7taYlgSSRTEZuOLH5pMIDr4feVLYt7W1DiqcPtZyDQ'wx.requestSubscribeMessage({//tmplIds: [templateId,templateId2,templateId3],tmplIds: [templateId],success: (res) => {//if (res[templateId] === 'accept'&&res[templateId2] === 'accept'&&res[templateId3] === 'accept') {if (res[templateId] === 'accept') {this.setData({requestSubscribeMessageResult: '成功',})} else {this.setData({requestSubscribeMessageResult: `失败(${res[templateId]})`,})}},fail: (err) => {this.setData({requestSubscribeMessageResult: `失败(${JSON.stringify(err)})`,})},})},
发送服务通知,记得函数里面的_openid填进去:
//发送消息sendSubscribeMessage(e) {//调用云函数,wx.cloud.callFunction({name: 'sende',//data是用来传给云函数event的数据,你可以把你当前页面获取消息填写到服务通知里面data: {action: 'sendSubscribeMessage',templateId: '33CZgCi9EtThT5WwfeOspZ0qQqxi4QgbYtlGUTx6KrQ',//这里我就直接把模板ID传给云函数了me:'Test_me',name:'Test_activity',_openid:''//填入自己的openid},success: res => {console.warn('[云函数] [openapi] subscribeMessage.send 调用成功:', res)wx.showModal({title: '发送成功',content: '请返回微信主界面查看',showCancel: false,})wx.showToast({title: '发送成功,请返回微信主界面查看',})this.setData({subscribeMessageResult: JSON.stringify(res.result)})},fail: err => {wx.showToast({icon: 'none',title: '调用失败',})console.error('[云函数] [openapi] subscribeMessage.send 调用失败:', err)}})},
调试(我这里就直接真机测试了:)
如果在电脑上调试,记得把本地设置的版本弄高一点(版本低只能真机调试有结果):
点击接收服务通知,允许:
然后点击发送服务通知:
微信收到服务通知: