我已经验证Notification.permission === 'granted'
和'Notification' in window == true
(尽管以下Javascript不会在我的Chrome浏览器版本70.0.3538.77(正式内部版本)(64位)中发出通知) 。
var notif = new Notification('title', {
icon: 'https://placehold.it/120x120',
body: 'body'
});
答案 0 :(得分:2)
好的,我在写是为了防止有人觉得它有用。
我也遇到了这个问题,我尝试different sites失败了。但是,@Don Reptile的答案向我暗示了可能出了什么问题(我阻止了本机通知)。
我在Windows 10上,这是我从Chrome启用本机通知的地方。
答案 1 :(得分:0)
未打开对话框的问题是 http 。 Chrome桌面通知仅适用于 https 协议。
我已经遇到了这个问题,并且花了很多时间来解决这个问题。终于我用https解决了。
我在这里共享了代码,因此您可以在https上运行,它将正常工作。
// request permission on page load
document.addEventListener('DOMContentLoaded', function() {
if (!Notification) {
alert('Desktop notifications not available in your browser. Try Chromium.');
return;
}
if (Notification.permission !== "granted")
Notification.requestPermission();
});
function notifyMe() {
if (Notification.permission !== "granted")
Notification.requestPermission();
else {
var notification = new Notification('Notification title', {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: "Hey there! You've been notified!",
});
notification.onclick = function() {
window.open("http://stackoverflow.com/a/13328397/1269037");
};
}
}
notifyMe();
致电notifyMe();
以显示通知
答案 2 :(得分:0)
最近有同样的问题。对我来说,解决方案是在chrome:// flags中禁用“启用本机通知”。我之所以无法看到通知,是因为浏览器想要显示本机通知,并且我禁用了所有Windows通知。希望以后能对某人有所帮助:)