上一节给你们将了借助云开发实现小程序支付功能,那么咱们就要想了,能不能借助云开发实现小程序消息推送功能呢? 还别说,云开发还真能实现推送的功能。java
一直关注个人同窗确定知道老师以前也写过借助java后台实现小程序消息推送的文章。 咱们借助java后台虽然也能轻松的实现消息推送。可是呢?用java开发后台推送,必需要搭建服务器,学习java代码,部署java代码固然你就是作java开发的,或者学习过java,这没什么。 可是做为小程序开发人员来讲,用java显得过重了。编程
传送门: 《借助小程序云开发实现小程序支付功能(含源码)》 《5行代码实现微信小程序模版消息推送 (含推送后台和小程序源码)》小程序
下面就来教你们如何借助云开发实现小程序模版消息的推送功能。微信小程序
老规矩,先看效果图 api
因为咱们的云推送功能只能在云函数里调用,因此咱们这里必需要在云函数里实现推送功能。bash
1,首先咱们定义一个云函数push0524。 若是你还不知道如何使用云开发,如何定义云函数,去翻下老师以前的文章。有写的。 服务器
把完整的代码贴给你们微信
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async(event, context) => {
console.log(event)
return sendTemplateMessage(event)
}
//小程序模版消息推送
async function sendTemplateMessage(event) {
const {
OPENID
} = cloud.getWXContext()
// 接下来将新增模板、发送模板消息、而后删除模板
// 注意:新增模板而后再删除并非建议的作法,此处只是为了演示,模板 ID 应在添加后保存起来后续使用
const addResult = await cloud.openapi.templateMessage.addTemplate({
id: 'AT0002',
keywordIdList: [3, 4, 5]
})
const templateId = addResult.templateId //新增的模版id
const sendResult = await cloud.openapi.templateMessage.send({
touser: OPENID,
templateId,
formId: event.formId,
page: 'pages/index/index',
data: {
keyword1: {
value: '云开发实现推送',
},
keyword2: {
value: '2019 年 5 月 24 日',
},
keyword3: {
value: '编程小石头',
},
}
})
//删除模版id
await cloud.openapi.templateMessage.deleteTemplate({
templateId,
})
return sendResult
}
复制代码
上面代码所实现的就是 1,建立模版,拿到模版id 2,使用模版ID,填充模版消息,发送模版 3,删除模版。async
咱们正常开发时,模版都是在小程序后台获取到的。这里是为例演示方便。因此正常开发时,只须要实现第二步就好了。函数
推送的关键代码就是这个方法: cloud.openapi.templateMessage.send
一般咱们定义完push0524云函数之后,若是直接调用的话,会报错误的。
验证其实很简单,和咱们以前的《5行代码实现微信小程序模版消息推送 (含推送后台和小程序源码)》 相似。只不过一个是在java后台推送,一个是在小城里推送。下面咱们简单写个小程序里验证推送的demo。
功能很简单 1,获取formid,由于推送必须有formid的 2,点击调用push0524实现推送
简单的贴下代码
须要注意的一点:咱们测试时,必需要真机测试。由于模拟器无法获取到formid的。
到这里咱们就用云开发实现完整的消息推送功能了。是否是很简单。
编程小石头码农一枚,非著名全栈开发人员。分享本身的一些经验,学习心得,但愿后来人少走弯路,少填坑