Notification.requestPermissions - 不显示对话框,Chrome 中显示“自动阻止”消息

Ale*_*lex 8 javascript notifications google-chrome html5-notifications

我正在使用localhostSSL 测试 HTML5 通知。我已重置该网站的 Chrome 设置(通过单击 URL 框中的锁定图标 - “网站设置”),并仔细检查通知设置设置为“询问(默认)”。

现在这是我的代码:

if (Notification.permission !== "granted") {
    Notification.requestPermission();
}
Run Code Online (Sandbox Code Playgroud)

但是,一旦运行代码,就不会显示任何权限弹出窗口,而是在地址栏中看到这个锁定图标,上面写着“通知被阻止”:

在此输入图像描述

尝试.then()在代码中添加承诺 - 结果相同。使用 Chrome 版本 85.0.4183.102。他们改变了什么吗?

我确实看到博客文章提到,如果用户关闭弹出窗口三次,Chrome 会自动禁用通知,但我确实重置了设置,不是吗?

PS 如果我刷新页面并再次请求权限 - 我在控制台中看到这个 等等"Notifications permission has been blocked as the user has ignored the permission prompt several times.",如果我连提示都没有看到,我怎么能忽略它呢?

Ale*_*lex 5

好吧,经过一个小时的头撞墙后,我找到了原因。

在此输入图像描述

地址栏中的那个小锁图标 -新的“通知提示”女士们先生们。

这真是……令人失望

PS 我们都明白这背后的意图是为了防止人们滥用这些弹出窗口。但更好的方法是检查代码是否在用户触发的上下文中运行(例如响应单击),如果是,则像以前一样保留它。