Cuando el usuario agrega tu app web progresiva a la pantalla principal en Android, Chrome genera automáticamente un APK, que a veces llamamos WebAPK. La instalación a través de un APK permite que tu app aparezca en el selector de apps, en la configuración de la app de Android y que registre un conjunto de filtros de intents.
Instalar una AWP en Android hace más que solo agregar la app web progresiva a la pantalla principal del usuario. Chrome genera e instala automáticamente un APK especial de tu app. A veces, nos referimos a esto como un WebAPK. La instalación a través de un APK permite que tu app aparezca en el selector de apps, en la configuración de la app de Android y que registre un conjunto de filtros de intents.
Para generar el WebAPK, Chrome analiza el manifiesto de la app web y otros metadatos. Cuando se detecte una actualización del manifiesto, Chrome deberá generar un APK nuevo.
Filtros de intents de Android
Cuando se instala una app web progresiva en Android, se registra un conjunto de filtros de intents para todas las URLs dentro del alcance de la app. Cuando un usuario hace clic en un vínculo que está dentro del alcance de la app, se abre la app, en lugar de abrirse en una pestaña del navegador.
Considera el siguiente manifest.json
parcial:
"start_url": "/",
"display": "standalone",
Cuando se inicia una app web que la usa desde el selector de aplicaciones, se abre https://example.com/
como una app independiente, sin ningún navegador Chrome.
El WebAPK incluiría los siguientes filtros de intents:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
Si el usuario hace clic en un vínculo a https://example.com/read
dentro de una app instalada, el intent lo detectará y se abrirá en la app web progresiva.
Usa scope
para restringir los filtros de intents
Si no quieres que tu app web progresiva controle todas las URLs de tu sitio, puedes agregar la propiedad scope
a tu manifiesto de app web. La propiedad scope
le indica a Android que solo abra tu app web si la URL coincide con origin
+ scope
. Te permite controlar qué URLs controlará tu app y cuáles se deben abrir en el navegador.
Esto es útil cuando tienes tu app y otro contenido que no es de la app en el mismo dominio.
Considera el siguiente manifest.json
parcial:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Cuando se iniciaba desde el selector de apps, se abría https://example.com/app/
como una app independiente, sin ningún navegador Chrome.
Al igual que antes, el WebAPK generado incluiría un filtro de intents, pero con un atributo android:pathPrefix
diferente en el AndroidManifest.xml
del APK:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
Veamos algunos ejemplos:
https://example.com/app/
: Dentro de /app/
https://example.com/app/read/book
, en un radio de /app/
https://example.com/help/
(no está en /app/
)
https://example.com/about/
: No está en /app/
.
Consulta scope
para obtener más información sobre scope
, qué sucede cuando no lo configuras y cómo puedes usarlo para definir el alcance de tu app.
Administra permisos
Los permisos funcionan de la misma manera que otras apps web y no se pueden solicitar en el momento de la instalación. En cambio, se deben solicitar en el tiempo de ejecución, idealmente solo cuando realmente los necesites. Por ejemplo, no solicites permiso de la cámara en la primera carga, sino que espera hasta que el usuario intente tomar una foto.
Cómo administrar el almacenamiento y el estado de la app
Aunque la app web progresiva se instala a través de un APK, Chrome usa el perfil actual para almacenar datos, y estos no se segregarán. Esto permite una experiencia compartida entre el navegador y la app instalada. Las cookies se comparten y están activas, se puede acceder a cualquier almacenamiento del cliente y el trabajador de servicios está instalado y listo para funcionar.
Actualiza el WebAPK
La información sobre cómo se actualiza un WebAPK se trasladó a Cómo maneja Chrome las actualizaciones del manifiesto de la app web.
Preguntas frecuentes
- ¿Qué íconos se usan para generar la pantalla de presentación? :
- Te recomendamos que proporciones al menos dos íconos: 192 px y 512 px para la pantalla de presentación. Nos informaste que los íconos de la pantalla de presentación eran demasiado pequeños. Los WebAPKs generados en Chrome 71 o versiones posteriores mostrarán un ícono más grande en la pantalla de presentación. No se requiere ninguna acción, siempre que se proporcionen los íconos recomendados.
- ¿Qué sucede si el usuario ya instaló la app nativa del sitio?
- Como en la actualidad, los usuarios pueden agregar un sitio a la pantalla principal, independientemente de las apps nativas. Si esperas que los usuarios instalen ambos, te recomendamos que diferencie el ícono o el nombre del sitio de los de la aplicación nativa.
- ¿Se borrará el almacenamiento de mi sitio instalado si el usuario borra la caché de Chrome?
- Sí.
- ¿Se volverá a instalar mi app cuando tenga un dispositivo nuevo?
- No por el momento, pero creemos que es un área importante y estamos investigando formas de hacerlo funcionar.
- ¿Cómo se manejan los permisos? ¿Veré el mensaje de Chrome o el de Android?
- Los permisos se seguirán administrando a través de Chrome. Los usuarios verán los mensajes de Chrome para otorgar permisos y podrán editarlos en la configuración de Chrome.
- ¿En qué versiones de Android funcionará?
- Las apps web progresivas se pueden instalar en todas las versiones de Android que ejecuten Chrome para Android, específicamente en Jelly Bean y versiones posteriores.
- ¿Usa WebView?
- No, el sitio se abre en la versión de Chrome desde la que el usuario lo agregó.
- ¿Podemos subir los APKs creados a Play Store?
- No. Si quieres subir tu propio APK, consulta Actividades web de confianza.
- ¿Aparecen en Play Store?
- No. Si quieres subir tu propio APK para una ficha de Play Store, consulta Trusted Web Activities.
- Soy desarrollador de otro navegador para Android. ¿Puedo tener este proceso de instalación sin problemas? :
- Estamos trabajando en ello. Nos comprometemos a que esta función esté disponible para todos los navegadores en Android y pronto tendremos más detalles.