gpt4 book ai didi

javascript - Google Chrome 中的 Service-Worker 警告

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:26 30 4
gpt4 key购买 nike

我正在使用 FCM 发送网络通知。我收到此警告,点击通知没有给出通常的结果(打开通知 URL)。这是 Service-Worker 代码

importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/3.5.2/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': '<my senderid>'
});

const messaging = firebase.messaging();


messaging.setBackgroundMessageHandler(function(payload) {


self.addEventListener('notificationclick', function(event) {
event.notification.close();

var promise = new Promise(function(resolve) {
setTimeout(resolve, 1000);
}).then(function() {
return clients.openWindow(payload.data.locator);
});

event.waitUntil(promise);
});

var notificationTitle = payload.data.title;
var notificationOptions = {
body: payload.data.body,
icon: payload.data.icon
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});

firebase-messaging-sw.js:108 Event handler of 'notificationclick' event must be added on the initial evaluation of worker script.

这是警告信息,108指的是这一行

self.addEventListener('notificationclick', function(event) {

这是在 chrome 版本 55 上。在 Firefox 上,没有任何问题,它运行完全正常。提前致谢。

最佳答案

你应该移动

self.addEventListener 

函数外

messaging.setBackgroundMessageHandler

这样您只需添加一次 EventListener。

您的完整代码应如下所示

const messaging = firebase.messaging();

self.addEventListener('notificationclick', function(event) {
event.notification.close();

var promise = new Promise(function(resolve) {
setTimeout(resolve, 1000);
}).then(function() {
return clients.openWindow(event.data.locator);
});

event.waitUntil(promise);
});

messaging.setBackgroundMessageHandler(function(payload) {

var notificationTitle = payload.data.title;
var notificationOptions = {
body: payload.data.body,
icon: payload.data.icon,
locator:payload.data.locator
};
return self.registration.showNotification(notificationTitle,
notificationOptions);
});

关于javascript - Google Chrome 中的 Service-Worker 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266567/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com