data(){
return{ tmplIds: ['9A_xCsCQuW3HuQD-nnZyefs6BWlfZDpdwkGa78', 'bqcMwMnTaPTclRWKN2Qlgl6892-l4XXEwCMsJHQ',
'mZq6tVlajPz8J7NReCoZC_uuUGm-sgzfbjD1Nsc'
],
showOpenSettingDialog: false, // 授权询问弹框,uview
}
}
onShow() {
this.showOpenSettingDialog = uni.getStorageSync('showOpenSettingDialog') || false;
},
// 开启订阅消息设置窗口
// 获取用户的当前设置,判断是否点击了“总是保持以上,不在询问”
uni.getSetting({
withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
success(res) {
if(_this.showOpenSettingDialog){
uni.requestSubscribeMessage({
tmplIds: _this.tmplIds,
success(res) {
if (res[_this.tmplIds[0]] == "accept" || res[_this.tmplIds[1]] == "accept" || res[_this.tmplIds[2]] == "accept") {
_this.showOpenSettingDialog = true;
uni.setStorageSync('showOpenSettingDialog',true);
}else{
uni.showToast({
title:"您拒绝订阅消息授权,无法接受通知",
icon:"none"
});
_this.showOpenSettingDialog = false;
}
uni.redirectTo({
url: '/publicPages/okPage/okPage?type=' + type
})
},
fail: (res) => {
uni.showModal({
title: '温馨提示',
content: "检测到您没有开启订阅消息的权限,是否去设置?",
success: function(modal) {
if (modal.confirm) { // 点击肯定
uni.openSetting({
withSubscriptions: true
});
_this.showOpenSettingDialog = true;
uni.setStorageSync('showOpenSettingDialog',true);
}else{
uni.showToast({
title:"您已拒绝订阅消息授权,无法接受通知",
icon:"none"
});
_this.showOpenSettingDialog = false;
}
}
})
}
})
}else{
if (res.subscriptionsSetting[_this.tmplIds[0]] == "reject" || res.subscriptionsSetting[_this.tmplIds[1]] == "reject" || res.subscriptionsSetting[_this.tmplIds[2]] == "reject") { //用户点击了“总是保持以上,不再询问”
uni.showModal({
title: '温馨提示',
content: "检测到您没有开启订阅消息的权限,是否去设置?",
success: function(modal) {
if (modal.confirm) { // 点击肯定
uni.openSetting({
withSubscriptions: true
});
_this.showOpenSettingDialog = true;
uni.setStorageSync('showOpenSettingDialog',true);
}else{
uni.showToast({
title:"您拒绝了一些订阅消息授权,无法接受通知",
icon:"none"
});
_this.showOpenSettingDialog = false;
}
}
})
} else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
uni.requestSubscribeMessage({
tmplIds: _this.tmplIds,
success(res) {
if (res[_this.tmplIds[0]] == "accept" && res[_this.tmplIds[1]] == "accept" && res[_this.tmplIds[2]] == "accept") {
_this.showOpenSettingDialog = true;
uni.setStorageSync('showOpenSettingDialog',true);
}else{
uni.showToast({
title:"您拒绝订阅消息授权,无法接受通知",
icon:"none"
});
_this.showOpenSettingDialog = false;
}
uni.redirectTo({
url: '/publicPages/okPage/okPage?type=' + type
})
},
fail: (res) => {
uni.showModal({
title: '温馨提示',
content: "检测到您没有开启订阅消息的权限,是否去设置?",
success: function(modal) {
if (modal.confirm) { // 点击肯定
uni.openSetting({
withSubscriptions: true
});
_this.showOpenSettingDialog = true;
uni.setStorageSync('showOpenSettingDialog',true);
}else{
uni.showToast({
title:"您已拒绝订阅消息授权,无法接受通知",
icon:"none"
});
_this.showOpenSettingDialog = false;
}
}
})
}
})
}
}
}
})