Webkit通知requestPermission函数不起作用

时间:2011-02-18 10:22:47

标签: html5 google-chrome webkit notifications html5-notifications

我正在尝试在我的网站上实现对WebKit本机桌面通知的支持。当我试图要求用户允许使用通知时,绝对没有任何反应。例如,以下HTML不会提示Chrome请求我的许可:

<html lang="en">
<head></head>

<body>
    <h1>Testing</h1>
    <script>
        window.webkitNotifications.requestPermission();
    </script>
</body>
</html>

我知道我的Chrome版本没有任何问题,因为其他网站(例如http://www.html5rocks.com/tutorials/notifications/quick/)工作正常:我可以看到提示和后续通知。

2 个答案:

答案 0 :(得分:50)

检查chromium api docs处的规范。您只能将其称为对用户手势/操作的反馈 - 鼠标单击等。

  

requestPermission请求   用户代理询问用户是否允许   显示脚本通知。   只应调用此方法   处理用户手势时;在   在其他情况下,它将没有   影响。此方法是异步的。   回调中提供的功能会   在用户响应时调用   到许可请求。如果   当前的权限级别是   PERMISSION_DENIED,用户代理可以   不采取任何行动回应   requestPermission。

更新2014-10-01 :在Chrome 37中,the user gesture requirement was removed。现在应该可以请求随时显示通知的权限。如果您希望定位旧版Chrome(例如,在公司环境中),您可能需要继续依赖用户手势事件。

答案 1 :(得分:2)

要检查本地文件的通知(file://),将弹出权限,但通知不会对chrome有效。

作为一种解决方法,你可以改变

  

内容设置&gt;通知&gt;允许所有网站显示通知

显示通知的最短代码

var notification = new Notification("YOUR MESSAGE");