这让我感到震惊,因为我有一个想要在其中向用户启用推送通知的应用。
它工作正常,但是用户可以采取一些步骤来“破坏”系统,让我逐步执行以下步骤:
禁用设置通知
向用户显示权限请求弹出窗口,提示他们应启用通知,然后按“否”,麻烦就开始了。
现在将使用false
将手机的设置设置为diagnostics plugin
,我们可以检查一下:
this.diagnostic.getRemoteNotificationsAuthorizationStatus().then((status) => {
console.log('Get rmeote notification status ' + status);
switch (status) {
case this.diagnostic.permissionStatus.GRANTED:
console.log('granted');
break;
case this.diagnostic.permissionStatus.DENIED_ALWAYS:
console.log('denied_always');
break;
default:
console.log('none of the above');
break;
}
});
该方法将注销denied_always
,因为phone
已拒绝通知
现在,这里的问题是使弹出窗口再次出现。因为如果我们尝试以下功能:
async requestNotificationPermission() {
this.diagnostic.requestRemoteNotificationsAuthorization(['ALERT', 'SOUND', 'BADGE'], false).then((result) => {
console.log(result);
}).catch((error) => {
console.log(error);
});
}
它将给出错误:
请求错误远程通知授权被拒绝
现在,这迫使我要做的是使自己的弹出窗口说“嘿,用户,您需要手动进入设置并将通知设置为true
”。这是理想的FAR。
我很茫然,为什么我不能再次显示弹出窗口?
有人可以帮助我吗?