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 de compilación de aplicaciones instalables y modernas con tecnología web para dispositivos móviles y de escritorio.

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. Eso significa que no hay pantalla del dinosaurio de Chrome si el usuario pierde el acceso a la red en su dispositivo.

El objetivo de todos los criterios de AWP es garantizar que los usuarios tengan una experiencia competitiva y de alta calidad cuando navegan por la Web. Chrome realiza verificaciones en función de los criterios de AWP antes de habilitar su capacidad de instalación.

Solo las apps que cumplen con todos los criterios principales de instalación de apps web progresivas, incluida la compatibilidad con un modo sin conexión, se pueden instalar en el dispositivo desde Chrome.

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

La verificación del soporte sin conexión forma parte de los criterios de instalación de AWP durante varios años. Hasta hace poco, Chrome no tenía la capacidad de simular solicitudes a través del service worker, por lo que no era posible verificar por completo el comportamiento sin conexión correcto.

Diagrama de service worker

Eso 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 realmente tenía un controlador fetch.

Se actualizó la lógica de detección sin conexión

En Chrome 89, se agregó la capacidad de ejecutar solicitudes sin conexión simuladas a través del service worker, lo que permite una lógica de detección sin conexión mejorada que refleje mejor el soporte sin conexión real de la aplicación.

Planeamos usar esta nueva capacidad para garantizar que las AWP proporcionaran una página válida cuando estén sin conexión, pero se suspendieron esos planes. La verificación de instalación se seguirá cumpliendo si la página tiene un service worker que incluya un controlador de eventos fetch.

¿Qué significa esto para los desarrolladores?

Si bien no es necesario que realices ningún cambio en este momento, te recomendamos que ofrezcas una experiencia sin conexión, ya que esperamos usar la lógica actualizada para verificar una página válida en algún momento.

Puedes decidir qué tipo de experiencia sin conexión quieres proporcionar. En un extremo del espectro, hay una experiencia completamente funcional sin conexión. Esto significa almacenar previamente en caché 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 esenciales de la Web, ya que elimina la necesidad de descargar recursos de la red todo el tiempo. 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.