第一步,需要先去小程序官方挑选一下订阅模板拿到模板id
订阅按钮在头部导航上,所以
<u-navbar :bgColor="bgColor">
<view class="u-nav-slot" slot="left" @click="goSubscribe">
<image :src="getimg('subscribe.png')" style="width: 44rpx;height: 44rpx;"></image>
<view class="le_tt">订阅</view>
</view>
</u-navbar>
// 订阅
goSubscribe() {
// 获取时间
let time = new Date()
let today = time.getDate()
let moni1 = time.setDate(today + 1);
let yM2 = new Date(moni1).getFullYear() + '-' + (this.checkTime(new Date(moni1).getMonth() + 1)) + '-'
let temp2 = yM2 + this.checkTime(new Date(moni1).getDate()) //明天
let _this = this;
let tempid = ['你的模板id']
uni.getSetting({
withSubscriptions: true,
success(res) {
// 通过Object.keys() 获取返回的数据包含了哪些键名,返回的类型是个数组
let obj = Object.keys(res.subscriptionsSetting)
// mainSwitch 是消息订阅的总开关
if (!res.subscriptionsSetting.mainSwitch) {
uni.showToast({
title: '请去 "设置-消息订阅" 开启消息通知',
icon: 'none',
duration: 2000
});
} else {
if (obj.includes(tempid[0])) { //判断是否勾选了“总是保持以上选择……”
addSubscribe({
date: temp2
}).then(res => {
})
uni.showToast({
title: '您已经设置了总是提醒了哟',
icon: 'none',
duration: 2000
});
return
} else {
_this.isSubscribe = true
uni.requestSubscribeMessage({
tmplIds: tempid,
success(res) {
if (res[tempid[0]] == 'accept') {
addSubscribe({
date: temp2
}).then(res => {
uni.showToast({
icon: 'none',
title: res.msg,
duration: 2000
});
})
_this.isSubscribe = false
} else {
_this.isSubscribe = false
}
},
fail(err) {
console.log(err);
}
})
}
}
}
})
},