Las apps web progresivas (AWP) son un patrón para compilar aplicaciones modernas y que se pueden instalar con tecnología web para dispositivos móviles y de escritorio.
Uno de los criterios para compilar una experiencia web moderna, y no por coincidencia las AWP, es que la app debe seguir funcionando incluso si el dispositivo no tiene conexión. Esto significa que no se mostrará la pantalla de Dino de Chrome si el usuario pierde el acceso a la red en su dispositivo.
El objetivo de todos los criterios de las AWP es ayudar a garantizar que los usuarios tengan una experiencia de alta calidad y competitiva con las apps cuando navegan por la Web. Chrome realiza verificaciones en función de los criterios de AWP antes de habilitar la capacidad de instalación de una AWP.
Solo se pueden instalar en el dispositivo desde Chrome las apps que cumplen con todos los criterios de instalabilidad de las aplicaciones web progresivas principales, incluida la compatibilidad con un modo sin conexión.
Lógica de detección sin conexión anterior
La verificación de la compatibilidad sin conexión ha sido parte de los criterios de instalabilidad de las AWP durante varios años. Hasta hace poco, Chrome no tenía la capacidad de simular solicitudes a través del servicio trabajador, por lo que no era posible realizar una verificación completa del comportamiento correcto sin conexión.
Eso significaba que Chrome no podía validar si el controlador de eventos fetch
mostraba un recurso válido con HTTP 200 durante la verificación sin conexión.
Chrome solo verificaba si el trabajador de servicio tenía un controlador fetch
.
Se actualizó la lógica de detección sin conexión
Chrome 89 agregó la capacidad de ejecutar solicitudes sin conexión simuladas a través del trabajador de servicio, lo que permite mejorar la lógica de detección sin conexión para reflejar mejor la compatibilidad sin conexión real de la aplicación.
Planeábamos usar esta nueva función para asegurarnos de que las AWP proporcionaran una página válida cuando no estuvieran en línea, pero suspendimos esos planes. La verificación de instalabilidad seguirá pasando si la página tiene un trabajador de servicio que incluye un controlador de eventos fetch
.
¿Qué significa esto para los desarrolladores?
Si bien no se requieren cambios en este momento, te recomendamos que proporciones una experiencia sin conexión, ya que esperamos usar la lógica actualizada para verificar si hay una página válida en algún momento en el futuro.
Depende de ti decidir qué tipo de experiencia sin conexión deseas proporcionar. En un extremo del espectro, se encuentra una experiencia sin conexión completamente funcional. Esto significa almacenar en caché previamente todos los recursos y datos necesarios, y sincronizar los datos con tu servidor cuando el usuario vuelva a estar en línea. La caché de recursos también ayudará a mejorar las métricas web esenciales, ya que elimina la necesidad de descargar recursos de la red cada vez. En el otro extremo del espectro, se encuentra una página de resguardo sin conexión personalizada.
La advertencia que se muestra en la pestaña Problemas de las herramientas para desarrolladores se quitará alrededor de Chrome 90.