我正在编写一个聊天Web应用程序,该应用程序必须能够通过通知API触发桌面推送通知:https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API
不幸的是,似乎直到我通过使用此 fiddle 发出另一个通知将其全部冲洗掉后,通知才会显示出来:https://jsfiddle.net/yoshi6jp/Umc9A/
这是我正在使用的代码:
function triggerDesktopNotification() {
function makeNotification() {
var notification = new Notification('AppName', {
body: 'You have a new message!',
icon: '/favicon.ico',
});
notification.onclick = () => {
notification.close();
};
}
if (Notification.permission === 'granted') {
makeNotification();
}
else if (Notification.permission !== 'denied') {
Notification.requestPermission(function (permission) {
if (permission === 'granted') {
makeNotification();
}
});
}
}
我可以通过在
console.log()
调用之后立即放置new Notification
来确认代码是否正确执行。有趣的是,如果我在其中放置一个alert()
,则当我看到警报框时(在导航回我的选项卡之后)会显示通知。 最佳答案
如果我理解你是对的;
我认为Alert会中断程序堆栈。为什么不尝试使用setTimeout函数异步触发它?
setTimeout( function(){
alert("asd");
})
编辑了js fiddle here
关于javascript - Chrome上的HTML5桌面推送通知不一致/延迟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37108653/