正在重置被拒绝的HTML通知

Resetting denied HTML notifications

本文关键字:HTML 通知 拒绝      更新时间:2023-09-26

我有一个web应用程序,在其中我使用HTML通知。如果用户第一次允许并开始使用它,它会正常工作。但是,如果用户通过单击阻止按钮第一次阻止通知,然后通过某些用户手势再次尝试请求许可,则浏览器不会触发(允许/阻止)弹出窗口。

这是我第二次触发权限。

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-notificationrequestpermission您将看到该规范要求,只有当权限值为default时,才会询问用户是否可以接受显示通知。如果权限值是grantedblocked,则该算法要求不再询问用户显示通知是否可接受。

用户如果改变了对其屏蔽的网站的通知的想法,可以选择进入浏览器设置,自行重置该网站的权限。

我建议有一个按钮来打开通知,然后检查那里的权限,如果之前被拒绝,则返回。

例如:

  if (Notification.permission === "denied") {
    alert("Notifications blocked. Please enable them in your browser.");
  }