javascript - Chrome 中的 Notification.permission 总是返回被拒绝

标签 javascript angularjs google-chrome notifications

我有一个网站在登录期间要求用户通知许可。我那里有一个代码,当他/她拒绝许可时自动注销用户(见下面的代码)

//Checks if user browsers notification is "Allowed", if "denied", logs out user
if(Notification.permission == 'denied') {
     removeAllCookies($cookies);
     $location.path("/login");
}

该代码起初似乎没问题,但就在今天它开始出现故障。所有新用户都会自动注销,即使他们还没有配置权限。

我什至尝试在地址栏左侧的 favicon 手动检查权限,我可以看到它仍然设置为 ask(default)。我也尝试手动将其设置为 AllowNotification.permission 函数仍然返回被拒绝。这是什么原因造成的?在我的电脑上没问题,但在所有其他用户中它会自动阻止。

编辑:刚才我已经在我的电脑上遇到了同样的事情。我的通知权限是允许的,但 Notification.permission 总是返回 denied。我控制台记录了它,它确实返回被拒绝。有人吗?

最佳答案

你那里有奇怪的业务逻辑,但它的值(value)......

Chrome 有一些规定:

1) 必须使用 HTTPS 或本地主机。如果不是,我的经验会自动拒绝权限

2) 如果你注册一个 service worker 会更可靠(我认为它实际上是移动 chrome 所必需的)

请务必通读有关 Notifications API 的文档,因为您会学到一些东西。 MDN 是一个很好的资源。

其他可能有帮助的是确保您的通知逻辑包含在 requestPermission promise 中:

Notification.requestPermission().then(function(permission) {
//if permission == 'denied' // logout
}

如果有任何帮助,请告诉我。

关于javascript - Chrome 中的 Notification.permission 总是返回被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342178/

相关文章:

sqlite - 为什么外键在 websql 中不起作用..?

javascript - 如何不间断地连续播放声音?

javascript - 使用.htaccess重写后Jquery不工作

javascript - Bootstrap Carousel 改为堆叠图像

javascript - 如何将数据从 angularJS 工厂填充到 Controller ?

javascript - 在 Chrome 中打开选择时禁用向后导航

css - Google Chrome 中有 "font smoothing"吗?

javascript - 将生成的 URL 中的 + 替换为 %20

javascript - 使用 Highcharts 和 AngularJs 的实时条形图

angularjs - 如何使图像可点击并执行功能?