没有接触的过小程序订阅的 估计和我一样 刚刚开始的时候 一脸懵逼 不知道从哪里下手 下面就一起来看下吧 小编刚开始做的是一个模板 都来因为需求变更 就多加了一个模板 下面是两个授权模板 这个要是看明白了 一个的就更简单了
先看下官网的介绍吧 小程序订阅消息
然后看下订阅的截图
代码: 第一次接触的 建议你多点击 打点断点 好好看看每一步是做什么的 这样的话 一遍就很清晰了 才能更好的吸收和理解
appointmentChange() {
let self = this
//模板id
const str_1 = 'AK5ITnaPus4k9ai58m981s1gVAEE7kEQ4g4Fnoq95kU';
const str_2 = 'tpEJVwAJBn3I2isFSPIGUOfyHJjLnZWZoawZLJipXi0';
wx.getSetting({
withSubscriptions: true,
success: (value)=>{
//判断用户是否点击关闭不在询问
if(value.subscriptionsSetting.mainSwitch == true){
let moIdState = value.subscriptionsSetting.itemSettings? value.subscriptionsSetting.itemSettings[str_1]:''; // 用户同意的消息模板id
let moIdState2 = value.subscriptionsSetting.itemSettings? value.subscriptionsSetting.itemSettings[str_2]:''; // 用户同意的消息模板id
if(moIdState === 'reject' && moIdState2 === 'reject'){
wx.showModal({
title: '提示',
content: '检测到您没打开消息推送权限,是否去授权',
cancelText: '不授权',
cancelColor: '#999',
confirmText: '授权',
confirmColor: '#f94218',
success(res) {
if (res.confirm) {
//调起客户端小程序设置界面,返回用户设置的操作结果。
wx.openSetting({
success (res) {
console.log(res,'用户的是否允许消息通知')
//调用已经授权通知的接口
wx.getSetting({
withSubscriptions: true,
success: (value2)=>{
//没有什么用处 多个的话 查看拒绝还是接受
let childMoIdState2 = value2.subscriptionsSetting.itemSettings? value2.subscriptionsSetting.itemSettings[str_2]:'';
if(childMoIdState2 === 'accept'){
// _this.timedPushMessages()
}
}
})
}
})
} else{
self.handelApotion()
}
}
})
}else{
wx.requestSubscribeMessage({
tmplIds: [str_1,str_2],
success: (res) => {
console.log("Ces",11)
//调用已经授权通知的接口
if (res[str_1] === 'accept' && res[str_2] === 'accept') {
console.log("Ces",22)
self.setData({
code1: true,
code2: true
})
} else {
// 如果其中一个拒绝了就只传一个
self.setData({
code1: res[str_1] === 'accept' ? true : false,
code2: res[str_2] === 'accept' ? true : false
})
}
// 其中一个有提醒就表示已授权提醒
if (res[str_1] == 'accept' || res[str_2] === 'accept') {
self.setData({
switchStatus: true
})
self.timedPushMessages() // 如果同意过了,直接调用提醒接口
} else {
console.log("Ces",44)
self.setData({
switchStatus: false
})
}
},
fail: (value) => {
console.log(value)
},
complete:()=>{
self.handelApotion()
}
})
}
}else{
wx.requestSubscribeMessage({
tmplIds: [str_1,str_2],
success: (res) => {
console.log(res, '用户的是否允许消息通知')
//调用已经授权通知的接口
if (res[str_1] === 'accept' && res[str_2] === 'accept') {
self.setData({
code1: true,
code2: true
})
} else {
// 如果其中一个拒绝了就只传一个
self.setData({
code1: res[str_1] === 'accept' ? true : false,
code2: res[str_2] === 'accept' ? true : false
})
}
// 其中一个有提醒就表示已授权提醒
if (res[str_1] == 'accept' || res[str_2] === 'accept') {
self.setData({
switchStatus: true
})
self.timedPushMessages() // 如果同意过了,直接调用提醒接口
} else {
self.setData({
switchStatus: false
})
}
},
fail: (value) => {
console.log(value)
},
complete:()=>{
//继续走下面的逻辑
self.handelApotion()
}
})
}
}
})
},