adr*_*nmc 9 javascript html5 notifications
我正在编写一个聊天网络应用程序,需要能够通过通知API触发桌面推送通知:https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API
不幸的是,似乎直到我通过用这个小提琴发出另一个通知才能显示通知: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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我可以通过console.log()在new Notification通话结束后立即确认代码正确执行.有趣的是,如果我把它放在alert()那里,当我看到警告框(导航回我的标签后)时会显示通知.
如果我没理解错的话;
警报中断了我认为放置的程序堆栈。为什么不尝试使用像这样的 setTimeout 函数异步触发它?
setTimeout( function(){
alert("asd");
})
Run Code Online (Sandbox Code Playgroud)
在这里编辑了js小提琴