Mar*_*rko 12 javascript browser notifications web-notifications
我正在尝试为我正在处理的项目设置浏览器通知.我到目前为止的代码是:
// Notification permissions logic handled before...
var notification = new Notification('Title', { body: 'Message' });
notification.onclick = function (e) {
window.focus();
// this.cancel();
};
setTimeout(notification.close.bind(notification), 5000);
Run Code Online (Sandbox Code Playgroud)
除了一件事,通知可以正常使用此代码.在Chrome中,点击通知不会将焦点设置在浏览器窗口中.在Firefox中,这种行为是开箱即用的,并且在没有上面定义的点击处理程序的情况下工作正常.我为Chrome寻找了解决方案,并找到了以下内容:
然而,建议接受的解决方案对我不起作用 - 事件被触发但未设置焦点.
有没有人有任何建议如何使这种行为正常?
Chrome版本:版本44.0.2403.130米
Firefox版本:40.0
这是一个 hacky 解决方案,但如果您注册了一个服务工作者,您可以执行类似的操作。
在客户端页面中:
yourServiceWorkerRegistration.showNotification('Title', {
body: 'Message',
});
Run Code Online (Sandbox Code Playgroud)
在服务人员中:
self.addEventListener('notificationclick', event => {
event.notification.close();
event.waitUntil(
clients.matchAll({
type: "window",
})
.then(clientList => {
if (clientList.length) {
clientList[0].focus();
}
})
);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |