Depura Progressive Web Apps

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Usa el panel Application para inspeccionar, modificar y depurar manifiestos de apps web, service workers y cachés de service workers.

Las apps web progresivas (AWP) son aplicaciones modernas y de alta calidad compiladas con tecnología web. Las AWP ofrecen capacidades similares a las de las apps para iOS, Android y computadoras. Son los siguientes:

  • Es confiable incluso en condiciones de red inestables.
  • Se puede instalar en las plataformas de lanzamiento de los sistemas operativos, como la carpeta Applications en Mac OS X, el menú Start en Windows y la pantalla principal en Android y iOS.
  • Aparecerán en los selectores de actividades, los motores de búsqueda del dispositivo, como Spotlight, y en las hojas de uso compartido de contenido.

En esta guía, solo se analizan las funciones de la app web progresiva del panel Application. Si buscas ayuda con los otros paneles, consulta la última sección de esta guía, Otras guías de paneles de la aplicación.

Resumen

  • Usa la pestaña Manifiesto para inspeccionar el manifiesto de tu app web.
  • Usa la pestaña Service Workers para realizar una amplia variedad de tareas relacionadas con los trabajadores de servicio, como cancelar el registro o actualizar un servicio, emular eventos push, desconectarse o detener un trabajador de servicio.
  • Consulta la caché de tu trabajador del servicio en la pestaña Almacenamiento en caché.
  • Cancela el registro de un trabajador de servicio y borra todo el almacenamiento y las cachés con un solo clic en la pestaña Borrar almacenamiento.

Manifiesto de la app web

Si deseas que los usuarios puedan agregar tu app a la carpeta Applications en Mac OS X, al menú Start en Windows y a la pantalla principal en Android y iOS, necesitas un manifiesto de app web. El manifiesto define cómo aparece la app en la pantalla principal, adónde dirigir al usuario cuando se inicia desde la pantalla principal y cómo se ve la app cuando se inicia.

Una vez que hayas configurado tu manifiesto, puedes usar la pestaña Manifiesto del panel Aplicación para inspeccionarlo.

La pestaña Manifiesto

  • Para ver la fuente del manifiesto, haz clic en el vínculo que se encuentra debajo de la etiqueta Manifiesto de la app (manifest.webmanifest en la captura de pantalla anterior).
  • Las secciones Identity y Presentation solo muestran campos de la fuente del manifiesto de una manera más fácil de usar.
  • La sección Controladores de protocolo te permite probar el registro del controlador de protocolo de URL de tu AWP con un clic. Para obtener más información, consulta Cómo probar el registro del controlador de protocolo de URL.
  • En la sección Íconos, se muestran todos los íconos que especificaste y puedes verificar sus máscaras.
  • El conjunto de secciones Atajo #N muestra información sobre todos tus objetos de atajo.
  • El conjunto de secciones Captura de pantalla n°N muestra las capturas de pantalla para una IU de instalación más enriquecida de tu app.

Además, si DevTools encuentra un error, como un ícono que no se puede cargar, la pestaña Manifiesto muestra una sección Instalabilidad que describe el error.

La sección Instalabilidad en la pestaña Manifiesto

Cómo ver y verificar íconos adaptables

En la sección Íconos de la pestaña Manifiesto, se muestran todos los íconos de tu aplicación. En esta sección, también puedes verificar las áreas seguras para los íconos enmascarables, el formato de íconos que se adaptan a las plataformas.

Para recortar los íconos de modo que solo se vea el área segura mínima, marca Casilla de verificación. Solo mostrar el área segura mínima de los íconos enmascarables.

Visualiza las áreas seguras mínimas para los íconos enmascarables.

Si todo el logotipo es visible en el área segura, puedes continuar.

Instalación del activador

Chrome te permite habilitar y promover la instalación de tu AWP directamente desde su interfaz de usuario. Obtén información para proporcionar tu propia experiencia de instalación en la app.

Para activar el flujo de instalación de tu AWP, haz lo siguiente:

  1. Abre la página de destino de la AWP en Chrome.
  2. En el lado derecho de la barra de direcciones en la parte superior, haz clic en Instalar. Instalar.

    El botón Install.

  3. Sigue las instrucciones en pantalla.

La función Install app no puede simular el flujo de trabajo para dispositivos móviles. Observa cómo el navegador Chrome para computadoras de escritorio muestra el botón de instalación en la barra de direcciones, aunque DevTools esté en el Modo de dispositivo. Sin embargo, si puedes agregar tu app a la computadora de escritorio, también funcionará en dispositivos móviles.

Si quieres probar la experiencia real de los dispositivos móviles, puedes conectar un dispositivo móvil real a DevTools a través de la depuración remota. Para activar la instalación en el dispositivo móvil conectado, abre el menú de tres puntos Menú de tres puntos. y haz clic en Instala la app. Instalar app.

Cómo inspeccionar combinaciones de teclas

Los atajos de la app te permiten proporcionar acceso rápido a algunas acciones comunes que los usuarios necesitan con frecuencia.

Para inspeccionar los atajos que definiste en tu archivo de manifiesto, desplázate hasta las secciones Shortcut #N de la pestaña Manifiesto.

Sección de acceso directo en la pestaña Manifiesto

Inspecciona las capturas de pantalla para obtener una IU de instalación más enriquecida

Cuando agregas una descripción y un conjunto de capturas de pantalla a tu archivo de manifiesto, tu app obtiene un diálogo de instalación más enriquecido.

Para inspeccionar las capturas de pantalla, desplázate hasta las secciones Captura de pantalla #N de la pestaña Manifiesto.

El diálogo de instalación y las capturas de pantalla en la pestaña Manifiesto

Prueba el registro del controlador de protocolo de URL

Las AWP pueden controlar vínculos que usan un protocolo específico para brindar una experiencia más integrada. Para obtener información sobre cómo crear un controlador, consulta Registro de controladores de protocolo de URL para AWPs.

Para probar el controlador, sigue estos pasos:

  1. Abre DevTools en la página de destino de tu AWP. Por ejemplo, consulta esta PWA de demostración.
  2. En la página de demostración, instala la AWP y vuelve a cargar la app después de la instalación. El navegador ahora registró la AWP como un controlador para el protocolo web+coffee.
  3. En la sección Application > Manifest > Protocol Handler, ingresa la URL que deseas que el controlador pruebe y haz clic en Test protocol. Prueba el controlador. En este ejemplo, el controlador puede procesar americano, chai y latte-macchiato.
  4. Cuando Chrome te pregunte si puede abrir la app, haz clic en Open Protocol Handler para confirmar. Abre la app.
  5. En el siguiente diálogo, permite que la app controle los vínculos web+coffee. Permite controlar los vínculos.

Si el controlador procesa correctamente el vínculo, verás una imagen de una taza de café abierta en la app.

Service workers

Los trabajadores de servicio son una tecnología fundamental en la futura plataforma web. Son secuencias de comandos que el navegador ejecuta en segundo plano, separadas de una página web. Estas secuencias de comandos te permiten acceder a funciones que no necesitan una página web ni interacción del usuario, como notificaciones push, sincronización en segundo plano y experiencias sin conexión.

Guías relacionadas:

La pestaña Service Workers en el panel Application es el lugar principal de DevTools para inspeccionar y depurar los trabajadores de servicio.

La pestaña Service workers.

  • Si hay un service worker instalado en la página que está abierta, lo verás en esta pestaña. Por ejemplo, en la captura de pantalla anterior, hay un trabajador de servicio instalado para el alcance de https://airhorner.com/.
  • La casilla de verificación Casilla de verificación. Sin conexión pone DevTools en modo sin conexión. Esto equivale al modo sin conexión disponible en el panel Red o en la opción Go offline del menú de comandos.
  • La casilla de verificación Casilla de verificación. Actualizar cuando se vuelva a cargar obliga al trabajador del servicio a actualizarse en cada carga de página.
  • La casilla de verificación Evitar para la red de Casilla de verificación. omite el trabajador de servicio y obliga al navegador a ir a la red para obtener los recursos solicitados.
  • El vínculo Solicitudes de red te dirige al panel Red con una lista de solicitudes interceptadas relacionadas con el trabajador de servicio (filtro is:service-worker-intercepted).
  • El vínculo Actualizar realiza una actualización única del trabajador de servicio especificado.
  • El botón Push emula una notificación push sin una carga útil (también conocida como tickle).
  • El botón Sync emula un evento de sincronización en segundo plano.
  • El vínculo Unregister cancela el registro del service worker especificado. Consulta Liberar espacio de almacenamiento para obtener una forma de cancelar el registro de un trabajador de servicio y borrar el almacenamiento y las cachés con un solo clic.
  • La línea Source te indica cuándo se instaló el trabajador de servicio que se está ejecutando actualmente. El vínculo es el nombre del archivo fuente del trabajador del servicio. Si haces clic en el vínculo, se te redireccionará a la fuente del trabajador del servicio.
  • La línea Status indica el estado del service worker. El número de esta línea (#16 en la captura de pantalla) indica cuántas veces se actualizó el trabajador de servicio. Si habilitas la casilla de verificación Casilla de verificación. Update on reload, verás que el número aumenta en cada carga de página. Junto al estado, verás un vínculo para iniciar (si el trabajador de servicio está detenido) o para detener (si el trabajador de servicio está en ejecución). Los service workers están diseñados para que el navegador los detenga y los inicie en cualquier momento. Detener de forma explícita tu trabajador de servicio con el vínculo stop puede simular eso. Detener el trabajador de servicio es una excelente manera de probar cómo se comporta tu código cuando el trabajador de servicio se reinicia. A menudo, revela errores debido a suposiciones erróneas sobre el estado global persistente.
  • La línea Clientes indica el origen al que se asignó el trabajador del servicio. El botón focus es útil principalmente cuando tienes varios trabajadores del servicio registrados. Si haces clic en el botón focus junto a un trabajador de servicio que se ejecuta en una pestaña diferente, Chrome se enfocará en esa pestaña.
  • En la tabla Ciclo de actualización, se muestran las actividades del trabajador del servicio y sus tiempos transcurridos, como la instalación, la espera y la activación. Para ver la marca de tiempo exacta de cada actividad, haz clic en los botones Expandir. Expandir.

    Actividades y sus marcas de tiempo

    Para obtener más información, consulta El ciclo de vida del trabajador de servicio.

Si el trabajador de servicio causa algún error, la pestaña Service Workers muestra un ícono de Error Error. con la cantidad de errores junto a la línea Source. El vínculo con el número te dirige a la consola con todos los errores registrados.

Errores de trabajador de servicio en la consola

Para ver información sobre todos los trabajadores de servicio, haz clic en Ver todos los registros en la parte inferior de la pestaña Trabajadores de servicio. Este vínculo te dirige a chrome://serviceworker-internals/?devtools, donde puedes depurar aún más tus trabajadores del servicio.

Registros de service worker en serviceworker-internals.

Cachés de service worker

La pestaña Almacenamiento en caché proporciona una lista de solo lectura de los recursos que se almacenaron en caché con la API de caché (service worker).

Pestaña de caché del service worker.

Ten en cuenta que la primera vez que abras una caché y le agregues un recurso, es posible que DevTools no detecte el cambio. Vuelve a cargar la página y deberías ver la caché.

Si tienes dos o más cachés abiertas, las verás en la lista debajo del menú desplegable Almacenamiento en caché.

Múltiples cachés de trabajadores del servicio

Uso de cuota

Es posible que algunas respuestas de la pestaña Almacenamiento en caché se marquen como "opacas". Se refiere a una respuesta recuperada de un origen diferente, como de una CDN o una API remota, cuando no está habilitado el CORS.

Para evitar la filtración de información entre dominios, se agrega un padding significativo al tamaño de una respuesta opaca que se usa para calcular los límites de cuota de almacenamiento (es decir, si se genera una excepción QuotaExceeded) y que informa la API de navigator.storage.

Los detalles de este padding varían de un navegador a otro, pero, en el caso de Google Chrome, esto significa que el tamaño mínimo que cualquier respuesta opaca almacenada en caché contribuye al uso general de almacenamiento es de aproximadamente 7 megabytes. Debes tener esto en cuenta cuando determines cuántas respuestas opacas quieres almacenar en caché, ya que podrías superar fácilmente las limitaciones de cuota de almacenamiento mucho antes de lo que esperas en función del tamaño real de los recursos opacos.

Guías relacionadas:

Liberar espacio de almacenamiento

La pestaña Clear Storage es una función muy útil cuando se desarrollan apps web progresivas. Esta pestaña te permite cancelar el registro de los trabajadores del servicio y borrar todas las cachés y el almacenamiento con un solo clic. Consulta la siguiente sección para obtener más información.

Guías relacionadas:

Otras guías del panel de la aplicación

Consulta las siguientes guías para obtener más ayuda sobre los otros paneles del panel Application.

Guías relacionadas: