Me he registrado un trabajador de servicio con éxito, pero, a continuación, el código

navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
    //Do we already have a push message subscription?
    ....

cuelga — la función nunca es llamado. Por qué?

InformationsquelleAutor Larry K | 2015-04-26

2 Comentarios

  1. 72

    El problema era que el service-worker.js el archivo se almacena en un assets sub-directorio.

    No hacerlo: la tienda de la service-worker.js en el root of your app (o superior). De esa manera, su aplicación puede acceder al servicio de trabajo.

    Ver HTML5Rocks artículo

    Una sutileza con el método de registro es el ubicación del trabajador del servicio de archivo. Vas a notar en este caso que el trabajador del servicio de archivo en la raíz del dominio. Esto significa que el trabajador de servicios del ámbito de aplicación será el todo de origen. En otras palabras, este servicio el trabajador recibirá captura de eventos para todo en este dominio. Si registramos el trabajador del servicio de archivo en /example/sw.js, entonces el trabajador de servicio sólo ver captura de eventos para las páginas cuya dirección URL comienza con /ejemplo/(es decir, /ejemplo/page1/, /ejemplo/page2/).

    Añadido

    Un nuevo problema es que la serviceworker nunca está listo en caso de que la página está muy recargado. Posterior suave de la página se vuelve a cargar un buen trabajo. Google muestra el código de falla. Ver el Chrome informe de error.

    Arreglar el error fue incluido con Chrome 44.

    • Me estoy enfrentando el mismo problema. Mi servicio trabajador está registrado en test.example.com/background-worker.js y mi código Javascript del navegador.serviceWorker.listo.entonces(function(serviceWorkerRegistration) se está ejecutando en test.example.com/blog se trata de conseguir el éxito registrado, pero esta función no se llama nunca. Alguna idea de cuál puede ser el problema?
    • Ver recién agregado info en la respuesta
    • Esta respuesta me ayudará con mi mismo problema.
    • Para mí, el problema persiste…
    • estaba golpeando en mi cabeza durante horas hasta que vi esto 😀
    • Para mí fue super lame: había que cerrar la pestaña del navegador (Chrome) y abrirlo de nuevo. Borrar la caché de almacenamiento, la memoria caché de su navegador y anular el registro del trabajador de servicio habían tenido ningún efecto.
    • Muchas gracias. He estado golpeando alrededor del arbusto durante dos días, y todo lo que tenía que hacer era mover sw.js a partir de secuencias de comandos a raíz de…
    • Gracias hombre, usted salvó mi día, es extraño que chrome requieren disponer de sw a nivel de la raíz del sitio.
    • Es posible que las redirecciones no funciona bien? Si voy a mi página de proyecto directamente, entonces la serviceworker listo función será llamada (promesa resuelve). Si voy a mi página de proyecto con una redirección (google de inicio de sesión), entonces esta listo función no va a ser llamado. Soluciones?

Dejar respuesta

Please enter your comment!
Please enter your name here