我正在尝试在客户应用程序中开发桌面通知JS。该代码可在Firefox上正常运行,但不能在Chrome上运行。我正在将通知权限更改为允许设置->高级->内容设置->通知->允许/拒绝,但仍然无法使用。
这是我的代码:
notifyMe: function() {
if (!("Notification" in window)) {
alert("Ce navigateur ne supporte pas les notifications desktop");
} else if (Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
if (!('permission' in Notification)) {
Notification.permission = permission;
}
if (permission === "granted") {
var notification = new Notification("Notify ")
}
});
}
}
有人可以帮助我吗?谢谢。
答案 0 :(得分:1)
从chrome版本62开始,仅在浏览器的安全上下文中支持Notifications。
何时认为上下文是安全的?
- 在安全(或本地)交付上下文且无法使用上下文提供安全访问时,上下文将被视为安全 指向不安全上下文的API。实际上,这意味着 一个具有安全上下文的页面,以及其父页面上的所有页面 并且开锁链必须已经安全交付。
- 本地传送的文件,例如http://localhost和file://路径被认为已安全传送。
- 非本地上下文必须通过https://或wss://提供,并且不应考虑所使用的协议 不推荐使用。
有关安全上下文的更多详细信息,请阅读MDN Secure Contexts
关于仅在安全上下文中支持通知的信息,请检查Notification的浏览器兼容性部分
答案 1 :(得分:0)
使用某些功能,例如HTTPS
,Notification
,Push Notification
,service worker
,geolocation
时,您需要一个以Speech to Text
协议运行的网站(使用Google服务)以及其他一些功能。 Chrome更加严格,尤其是在较新的版本中。
答案 2 :(得分:0)
var myNotification = window.webkitNotifications.createNotification('mike.png', 'New Content Available', 'Click to view');
myNotification.onclick = function() {
window.location = 'http://teamtreehouse.com/new/content';
}
myNotification.show();
如果难以理解,请点击以下链接:https://developers.google.com/web/fundamentals/codelabs/push-notifications/