Ale*_*nin 1 javascript firefox push-notification web-push
火狐 62.0.2(64 位)。视窗 7 x64。从编写代码这在我们网站的火力点的消息,sw.js:
self.addEventListener('notificationclick', event => {
event.waitUntil(async function() {
throw "1";//this line for debug only
}());
});
Run Code Online (Sandbox Code Playgroud)
代码在 Firefox 中的 event.waitUntil() 中引发异常“InvalidStateError:尝试使用不可用或不再可用的对象”。在 Chrome 中正常工作。为什么?我该如何解决?
PS我正在寻找第二天的答案。:(
在 Firefox 63 中有这个问题。在 Chrome 中一切正常。我的服务人员代码是:
importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': '...'
});
var messaging = firebase.messaging();
self.addEventListener('notificationclick', function (event) {
...
}
Run Code Online (Sandbox Code Playgroud)
我偶然发现了这个:在 firebase-messaging.js 中的 stopImmediatePropagation。我在 service-worker 的开头(在 importScripts 之前)移动了我的事件侦听器:
self.addEventListener('notificationclick', function (event) {
...
}
importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-messaging.js');
Run Code Online (Sandbox Code Playgroud)
处理程序开始在 Firefox 中工作。
PS Handler 开始工作正常,但在此操作之后,firebase-messaging 库抛出了错误。event.stopImmediatePropagation() 帮助:
self.addEventListener('notificationclick', function (event) {
event.stopImmediatePropagation();
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6104 次 |
| 最近记录: |