重置被拒绝的 HTML 条通知
Resetting denied HTML notifications
我有一个使用 HTML 通知的网络应用程序。如果用户第一次允许并开始使用它,它工作正常,但是如果用户第一次通过单击阻止按钮阻止通知,然后尝试通过某些用户手势再次请求许可,则浏览器不会触发(Allow/Block) 弹出窗口。
这是我第二次触发权限
if(Notification.permission == 'denied' || Notification.permission == 'default'){
Notification.requestPermission(function (permission) {
// If the user accepts, let's create a notification
if (permission === "granted") {
console.log("Regranted");
}
});
}
它适用于 default
情况但不适用于 denied
情况。
正如之前的评论所指出的,您看到的行为是设计使然。如果你阅读第 2 步,在 https://notifications.spec.whatwg.org/#dom-notification-requestpermission 处的第 2 子步,你会看到规范要求只有在权限值为 default
时才会询问用户是否可以接受显示通知。如果权限值为 granted
或 blocked
,则该算法要求不再询问用户是否可以接受显示通知。
如果用户对已阻止的网站的通知改变主意,可以选择进入浏览器设置并自行更改该网站的权限设置。
我建议有一个按钮来打开通知,然后检查那里的权限,如果之前被拒绝则回退。
例如:
if (Notification.permission === "denied") {
alert("Notifications blocked. Please enable them in your browser.");
}
我有一个使用 HTML 通知的网络应用程序。如果用户第一次允许并开始使用它,它工作正常,但是如果用户第一次通过单击阻止按钮阻止通知,然后尝试通过某些用户手势再次请求许可,则浏览器不会触发(Allow/Block) 弹出窗口。
这是我第二次触发权限
if(Notification.permission == 'denied' || Notification.permission == 'default'){
Notification.requestPermission(function (permission) {
// If the user accepts, let's create a notification
if (permission === "granted") {
console.log("Regranted");
}
});
}
它适用于 default
情况但不适用于 denied
情况。
正如之前的评论所指出的,您看到的行为是设计使然。如果你阅读第 2 步,在 https://notifications.spec.whatwg.org/#dom-notification-requestpermission 处的第 2 子步,你会看到规范要求只有在权限值为 default
时才会询问用户是否可以接受显示通知。如果权限值为 granted
或 blocked
,则该算法要求不再询问用户是否可以接受显示通知。
如果用户对已阻止的网站的通知改变主意,可以选择进入浏览器设置并自行更改该网站的权限设置。
我建议有一个按钮来打开通知,然后检查那里的权限,如果之前被拒绝则回退。
例如:
if (Notification.permission === "denied") {
alert("Notifications blocked. Please enable them in your browser.");
}