微信开发工具实现订阅消息功能
1、新建文件夹,取名为:push1
2、push1.wxml写下如下代码:
<button bindtap="dingyue">订阅</button>
3、push1.js写下如下代码:
// pages/push1/push1.js
Page({
/**
* 页面的初始数据
*/
data: {
openid: ,
accessToken:"",
},
dingyue() {
var that =this;
//获取授权
wx.requestSubscribeMessage({
tmplIds: [‘你的模板ID’],
success(res) {
console.log("获取授权", res);
if (res[‘你的模板ID’] === accept) {
console.log("订阅成功!")
} else if (res[‘你的模板ID’] === reject) {
console.log("订阅失败")
};
//发送通知,调用云函数
wx.cloud.callFunction({
name:subscribes,
data:{
openid:that.data.openid
},
success:res=>{
console.log("发送成功");
console.log(res)
},
fail:res=>{
console.log("发送失败");
console.log(res);
}
})
},
fail(res) {
console.log(res)
},
complete(res) {
// console.log(res)
}
})
},
onLoad(){
var that =this;
//获取openid
wx.cloud.callFunction({
name: "getOpenid" //这里的name指的是之前创建的云函数getOpenid
}).then(res => {
console.log("获取成功openid", res);
this.setData({
openid: res.result.openid
})
}).catch(res => {
console.log("获取失败openid", res)
});
wx.cloud.callFunction({
name: obtainAccess,
success:res=>{
console.log("获取access成功");
this.setData({
accessToken:res.result
})
}
});
4、新建云函数subscribes文件夹,来发送通知
5、在index.js中 写下如下代码:
const cloud = require(wx-server-sdk)
cloud.init({
env:cloud.DYNAMIC_CURRENT_ENV//同上
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.subscribeMessage.send({
touser: event.openid,//需要发送用户的openid
templateId:你的模板ID,
page: pages/index/index,//点击通知挑转的页面
lang: zh_CN,//语言设置
data: {
time4: {
value:2022年7月1日10:06:00 //key必须和模版一样!!!
},
thing2:{
value:"点击立即签到"
}
},
miniprogramState: developer
})
return result
} catch (err) {
return err
}
}
6、创建getOpenid获取用户openid
Index.js中填写如下代码:
// 云函数入口文件
const cloud = require(wx-server-sdk)
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
7、点击订阅,实现功能 8、感谢大家收看,希望有所帮助
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序点餐系统需求分析与建模
