微信小程序可以通过订阅消息和推送通知功能,实现向用户发送消息的功能。下面将详细介绍如何为微信小程序添加订阅消息和推送通知功能。
一、订阅消息功能
- 申请消息模板
首先,我们需要在微信公众平台申请一个消息模板,并获取到模板的ID。
(1)登录微信公众平台(https://mp.weixin.qq.com/),进入小程序后台。
(2)点击左侧菜单栏中的「订阅消息」,然后点击「添加模板」。
(3)在弹出的窗口中,填写模板标题和模板内容,并点击「提交审核」。
(4)审核通过后,会获取到模板的ID。
- 授权用户订阅消息
为了让用户接收订阅消息,我们需要请求用户授权。在小程序中,可以使用wx.requestSubscribeMessage
方法进行授权。
wx.requestSubscribeMessage({
tmplIds: [模板ID],
success(res) {
// 授权成功
if (res[模板ID] === 'accept') {
console.log('用户同意订阅');
} else {
console.log('用户拒绝订阅');
}
}
});
其中,tmplIds
为一个数组,可以传入多个模板ID。
- 发送订阅消息
用户授权订阅消息后,开发者就可以根据需要发送订阅消息了。
wx.cloud.callFunction({
name: 'sendSubscribeMessage',
data: {
touser: 用户OPENID,
templateId: 模板ID,
page: 'pages/index/index',
data: {
keyword1: {
value: '消息内容1',
},
keyword2: {
value: '消息内容2',
},
},
},
success(res) {
console.log('发送订阅消息成功');
},
fail(error) {
console.error('发送订阅消息失败', error);
},
});
在发送订阅消息时,需要调用云函数sendSubscribeMessage
,并传入用户的OPENID、模板ID、消息跳转页和消息内容等参数。
二、推送通知功能
- 开启推送服务
在微信公众平台,需要先开启推送服务,并获取到微信后台配置的AppID和AppSecret。
- 获取用户的订阅ID
在小程序中,可以通过wx.login
和wx.request
方法获取用户的订阅ID。
wx.login({
success(res) {
if (res.code) {
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token',
data: {
grant_type: 'client_credential',
appid: 'AppID',
secret: 'AppSecret',
},
success(res) {
const { access_token } = res.data;
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/user/get',
data: {
access_token,
openid: 用户OPENID,
},
success(res) {
const { subscribe_scene, subscribe } = res.data;
const isSubscribed = subscribe_scene === 'ADD_SCENE_PROFILE_CARD' && subscribe === 1;
const subscribeId = isSubscribed ? 用户订阅ID : '';
console.log('用户订阅ID', subscribeId);
},
});
},
});
}
},
});
需要将上述代码中的AppID
和AppSecret
替换为实际的值。
- 发送推送通知
获取到用户的订阅ID后,就可以发送推送通知了。
wx.cloud.callFunction({
name: 'sendPushNotification',
data: {
touser: 用户订阅ID,
templateId: 模板ID,
page: 'pages/index/index',
data: {
keyword1: {
value: '通知内容1',
},
keyword2: {
value: '通知内容2',
},
},
},
success(res) {
console.log('发送推送通知成功');
},
fail(error) {
console.error('发送推送通知失败', error);
},
});
在发送推送通知时,同样需要调用云函数sendPushNotification
,并传入用户的订阅ID、模板ID、通知跳转页和通知内容等参数。
以上就是为微信小程序添加订阅消息和推送通知功能的详细步骤。通过这些功能,开发者可以方便地向用户发送消息和通知,提升用户体验。