Mejora de la detección de compatibilidad sin conexión de apps web progresivas

Penny McLachlan
Penny McLachlan

Las apps web progresivas (AWP) son un patrón para compilar aplicaciones modernas instalables con tecnología web para dispositivos móviles y computadoras.

Uno de los criterios para crear una experiencia web moderna, y no casualmente AWP, es que la app debe seguir funcionando incluso si el dispositivo está sin conexión. Esto significa que no aparecerá la pantalla de Chrome Dino si el usuario pierde el acceso a la red en su dispositivo.

El objetivo de todos los criterios de las AWP es garantizar que los usuarios tengan una experiencia de alta calidad y competitiva con las apps cuando navegan por la Web. Chrome realiza verificaciones según los criterios de las 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 principales de instalabilidad de las aplicaciones web progresivas, incluido el modo sin conexión.

Lógica de detección sin conexión anterior

La verificación de la compatibilidad sin conexión forma parte de los criterios de instalabilidad de las PWA desde hace varios años. Hasta hace poco, Chrome no podía simular solicitudes a través del service worker, por lo que no era posible realizar una verificación completa del comportamiento sin conexión correcto.

Diagrama del service worker

Esto significaba que Chrome no podía validar si el controlador de eventos fetch devolvía un recurso válido con HTTP 200 durante la verificación sin conexión. Chrome solo verificó si el service worker 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 service worker, lo que permite que la lógica de detección sin conexión mejorada refleje mejor la compatibilidad sin conexión real de la aplicación.

Habíamos planeado usar esta nueva capacidad para garantizar que las PWA proporcionaran una página válida cuando no hubiera conexión, pero suspendimos esos planes. La verificación de instalabilidad seguirá pasando si la página tiene un Service Worker que incluye un controlador de eventos fetch.

¿Qué significa esto para los desarrolladores?

Si bien no se requieren cambios ahora, 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.

Tú decides qué tipo de experiencia sin conexión quieres proporcionar. En un extremo del espectro, se encuentra una experiencia sin conexión completamente funcional. Esto significa que debes 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. El almacenamiento en caché de los 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.