Creé un trabajador de servicio para mi quasar pwa para administrar las notificaciones de fondo web de fcm. El propósito es administrar las notificaciones de clic en primer plano y en segundo plano y redirigir al usuario a una página específica de mi pwa.
Entonces, cuando recibo una notificación, tengo dos escenarios:
notificaciones en primer plano :
notificaciones de fondo :
Todo funciona bien en 1a, 1b y 2a. Para 2b, aparece este extraño error " Este trabajador de servicio no es el trabajador de servicio activo del cliente ".
Tengo el siguiente código en Service Worker para administrar la redirección en el clic de notificación en segundo plano. Y me sale el error en el método de navegar() .
self.addEventListener('notificationclick', function(event) { console.log('notificationclick', event); event.notification.close(); let route = event.notification.data.route ? JSON.parse(event.notification.data.route) : null; if(route && route.params && route.params.token) { const domain = route.domain; const path = '/#/' + route.name + '/' + route.params.token; const fullUrl = domain + path event.waitUntil(clients.claim().then(() => { return clients.matchAll({ type: 'window', includeUncontrolled: true }) .then(clients => clients.filter(client => client.url.indexOf(domain) !== -1)) .then(matchingClients => { if (matchingClients[0]) { return matchingClients[0].focus().then(function (client) { client.navigate(path) .then(client => { }).catch(function (e) { console.log(e); --> here I get the error }); }).catch(function (e) { console.log(e); }); } return clients.openWindow(fullUrl); }) }) ); } });Busqué este error en la web pero no encontré ninguna referencia, por lo que no entiendo el error y no puedo resolverlo. ¿Alguien puede ayudar por favor? Gracias