微信消息一次性消息订阅与长期消息订阅开启用户提醒
1、首先需要再微信公众号平台开启 消息订阅
个人用户只能订阅一次性消息
类型是公共服务可以订阅长期消息订阅
2.微信小程序代码
const tmplIds = ['模板id1','模板id2','模板id3']
//开启消息订阅
function openMessageNotfiy() {
return new Promise((resolve, reject) => {
wx.getSetting({
withSubscriptions: true,
success(res) {
console.log('消息订阅设置结果', res)
// 1.如果用户未开启消息订阅的通知管理
if (!res.subscriptionsSetting.mainSwitch) {
wx.showModal({
title: '温馨提示',
content: "需要打开接收通知并设置每个提醒为'接受',请点击确定进行授权",
success(modalRes) {
if (modalRes.confirm) {
wx.openSetting()
}
}
});
return;
} else {
requestSubscription(res)
}
}
})
})
}
// 请求消息订阅提醒
function requestSubscription(result) {
wx.requestSubscribeMessage({
tmplIds,
success(res) {
const subscriptionsSetting = result.subscriptionsSetting
if (subscriptionsSetting[tmplIds[0]] !== "reject" && subscriptionsSetting[tmplIds[1]] !== "reject" && subscriptionsSetting[tmplIds[2]] !== "reject") {
// 用户同意了订阅
console.log('订阅成功');
} else {
// 用户拒绝了订阅或发生了其他异常
wx.showModal({
title: '温馨提示',
content: "需要打开接收通知并设置每个提醒为'接受',请点击确定进行授权",
success(modalRes) {
if (modalRes.confirm) {
wx.openSetting()
}
}
});
console.log('订阅失败');
}
},
fail(err) {
console.error('请求订阅失败', err);
}
});
}
需要用户点击操作才可以调用 openMessageNotfiy()