Saltar al contenido

navigator.serviceWorker.controller es siempre null

Posterior a buscar en diversos repositorios y foros de internet al terminar encontramos la respuesta que te mostraremos pronto.

Solución:

Lo primero que miraría al depurar esto es si la página actual en la que se encuentra cae dentro del alcance del trabajador del servicio. Si su página actual no está bajo el alcance, entonces no se controlará (pero el trabajador del servicio que registró aún puede considerarse activo).

estas llamando register(SERVICE_WORKER_URL) que, de forma predeterminada, usará el directorio que contiene su script de trabajador de servicio como alcance. Eso es normalmente lo que querrías, pero debes asegurarte de que SERVICE_WORKER_URL se refiere a un script que se encuentra en la raíz de su sitio web. De esa manera, podrá controlar páginas tanto en el mismo nivel raíz como páginas en directorios debajo de su raíz web. Entonces, si el archivo JavaScript de su trabajador de servicio se encuentra actualmente bajo una /scripts/ subdirectorio o algo así, muévalo a la raíz.

Puede verificar el alcance actual de su trabajador de servicio visitando chrome://serviceworker-internals/ y viendo cuál es el alcance asociado a tu registro.

Intente agregar esto en el trabajador de servicio:

self.addEventListener('activate', event => 
    clients.claim();
    console.log('Ready!');
);

navigator.serviceWorker.register solo registra el serviceworker y lo activa. pero para obtener el control sobre el serviceworker, debe colocar su serviceworker en la carpeta raíz pública para que todas las páginas estén en el alcance y el serviceworker se adjunte a él.

Agradecemos que desees añadir valor a nuestra información colaborando tu experiencia en las observaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.