26

我正在尝试在我的网站上实现对 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/)运行良好:我可以看到提示和后续通知。

4

2 回答 2

50

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

requestPermission 请求用户代理请求用户允许显示来自脚本的通知。 此方法仅应在处理用户手势时调用;在其他情况下,它将没有效果。此方法是异步的。当用户响应权限请求时,回调中提供的函数将被调用。如果当前权限级别是 PERMISSION_DENIED,则用户代理可能不会对 requestPermission 采取任何行动。

更新 2014-10-01:在 Chrome 37 中,删除了用户手势要求。现在应该可以随时请求显示通知的权限。如果您也希望针对旧版本的 Chrome(例如,在公司环境中),您可能需要继续依赖用户手势事件。

于 2011-02-18T10:33:05.943 回答
2

检查本地文件通知(file://)权限将弹出,但通知不会在 chrome 上工作。

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

内容设置 > 通知 > 允许所有网站显示通知

显示通知的最短代码

var notification = new Notification("YOUR MESSAGE");
于 2014-10-14T09:51:48.570 回答