Я использую push-уведомление FCM на своем веб-сайте и хочу, чтобы пользователь мог зайти на мой сайт, когда он или она нажмет на push-уведомление.Обратите внимание, что пользователь может находиться в другом приложении или на другой вкладке браузера, и я хочу, чтобы, когда пользователь получал уведомление fcm, пользователь мог зайти на мой сайт, щелкнув уведомление в браузере Firefox.По этой причине я использовал событие messagesclick, которая доступна в сервисном сервисе.Код, который я использовал, выглядит так:
self.addEventListener('notificationclick', event => {
console.log('On notification click: ', event.notification.tag);
event.notification.close();
// This looks to see if the current is already open and
// focuses if it is
event.waitUntil(
clients
.matchAll({
type: 'window'
})
.then(clientList => {
for (let i = 0; i < clientList.length; i++) {
const client = clientList[i];
if (client.url === '/' && 'focus' in client) return client.focus();
}
if (clients.openWindow) return clients.openWindow('/');
})
);
});
Он не открывается и не фокусируется на вкладке моего сайта.Для отладки кода я напечатал переменную clientList, и это массив нулевой длины.
Ошибка, которую я получаю в браузере, это
On notification click:
InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable firebase-messaging-sw.js:92
Вышеприведенная ошибка относится к этой строкекода:
event.waitUntil(
ОС: Mac Firefox: 63.0.3 Реагирует: 16.2.0