Quando l'utente aggiunge la tua app web progressiva alla schermata Home su Android, Chrome genera automaticamente un APK, a volte chiamato WebAPK. L'installazione tramite un APK consente alla tua app di essere visualizzata nell'avvio app, nelle impostazioni app di Android e di registrare un insieme di filtri intent.
L'installazione di una PWA su Android fa molto di più che aggiungere l'app web progressiva alla schermata Home dell'utente. Chrome genera e installa automaticamente un APK speciale della tua app. A volte lo chiamiamo WebAPK. L'installazione tramite un APK consente alla tua app di essere visualizzata nell'avvio app, nelle impostazioni app di Android e di registrare un insieme di filtri intent.
Per generare il file WebAPK, Chrome esamina il manifest dell'app web e altri metadati. Quando viene rilevato un aggiornamento del manifest, Chrome deve generare un nuovo APK.
Filtri per intent Android
Quando un'app web progressiva viene installata su Android, viene registrata una serie di filtri di intent per tutti gli URL nell'ambito dell'app. Quando un utente fa clic su un link che rientra nell'ambito dell'app, l'app viene aperta anziché in una scheda del browser.
Considera il seguente manifest.json
parziale:
"start_url": "/",
"display": "standalone",
Quando un'app web che lo utilizza viene avviata dall'Avvio app, si apriràhttps://example.com/
come app autonoma, senza la barra del browser.
Il WebAPK includerà i seguenti filtri intent:
<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>
Se l'utente fa clic su un link all'interno di un'app installata per visitarehttps://example.com/read
, questo verrà rilevato dall'intent e aperto
nella Progressive Web App.
Utilizzo di scope
per limitare i filtri di intent
Se non vuoi che la tua Progressive Web App gestisca tutti gli URL all'interno del tuo sito, puoi aggiungere la proprietà scope
al manifest della tua web app. La proprietà scope
indica ad Android di aprire la tua app web solo se l'URL corrisponde a origin
+ scope
. Ti consente di controllare quali URL verranno gestiti dalla tua app e quali devono essere aperti nel browser.
Questa opzione è utile quando hai la tua app e altri contenuti non relativi all'app nello stesso
dominio.
Considera il seguente manifest.json
parziale:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Se viene avviata dal programma di avvio app, si aprirà https://example.com/app/
come app autonoma, senza la barra del browser.
Come prima, il WebAPK generato includerà un filtro per intent, ma con un attributo android:pathPrefix
diverso in AndroidManifest.xml
dell'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>
Vediamo alcuni esempi:
https://example.com/app/
- in /app/
https://example.com/app/read/book
- in /app/
https://example.com/help/
- non in /app/
https://example.com/about/
- non in /app/
Consulta scope
per saperne di più su scope
, su cosa succede se non lo imposti e su come puoi utilizzarlo per definire l'ambito della tua app.
Gestione delle autorizzazioni
Le autorizzazioni funzionano come le altre app web e non possono essere richieste al momento dell'installazione. Devono invece essere richieste in fase di esecuzione, idealmente solo quando ne hai davvero bisogno. Ad esempio, non chiedere l'autorizzazione di accesso alla fotocamera al primo caricamento, ma attendi che l'utente tenti di scattare una foto.
Gestione dello spazio di archiviazione e dello stato dell'app
Anche se l'app web progressiva viene installata tramite un APK, Chrome utilizza il profilo corrente per memorizzare i dati e non verrà separato. In questo modo viene consentita un'esperienza condivisa tra il browser e l'app installata. I cookie sono condivisi e attivi, qualsiasi spazio di archiviazione lato client è accessibile e il servizio worker è installato e pronto all'uso.
Aggiornamento del WebAPK
Le informazioni sulle modalità di aggiornamento di un WebAPK sono state spostate in Modalità di gestione degli aggiornamenti del file manifest dell'app web in Chrome.
Domande frequenti
- Quali icone vengono utilizzate per generare la schermata iniziale? :
- Consigliamo di fornire almeno due icone: 192 px e 512 px per la schermata di benvenuto. Ci avete segnalato che le icone sulla schermata iniziale erano troppo piccole. I WebAPK generati in Chrome 71 o versioni successive mostreranno un'icona più grande nella schermata iniziale. Non è richiesta alcuna azione, purché vengano fornite le icone consigliate.
- Che cosa succede se l'utente ha già installato l'app nativa per il sito?
- Come l'opzione Aggiungi alla schermata Home oggi, gli utenti potranno aggiungere un sito indipendentemente da qualsiasi app nativa. Se prevedi che gli utenti possano installare entrambe, ti consigliamo di differenziare l'icona o il nome del tuo sito dall'app nativa.
- Lo spazio di archiviazione del sito installato verrà cancellato se l'utente svuota la cache di Chrome?
- Sì.
- La mia app verrà reinstallata quando avrò un nuovo dispositivo?
- Al momento no, ma riteniamo che sia un'area importante e stiamo esaminando i modi per renderla operativa.
- Come vengono gestite le autorizzazioni? Vedrò la richiesta di Chrome o quella di Android?
- Le autorizzazioni continueranno a essere gestite tramite Chrome. Gli utenti vedranno le richieste di Chrome per concedere le autorizzazioni e potranno modificarle nelle impostazioni di Chrome.
- Su quali versioni di Android funzionerà?
- Le app web progressive possono essere installate su tutte le versioni di Android su cui è eseguito Chrome per Android, in particolare Jelly Bean e versioni successive.
- Utilizza WebView?
- No, il sito si apre nella versione di Chrome da cui l'utente lo ha aggiunto.
- Possiamo caricare gli APK creati sul Play Store?
- No. Se vuoi caricare il tuo APK, dai un'occhiata ad Attività web attendibili.
- Sono elencati nel Play Store?
- No. Se vuoi caricare il tuo APK per la scheda nel Play Store, dai un'occhiata ad Attività web attendibili.
- Sono sviluppatore di un altro browser su Android. Posso seguire questa procedura di installazione senza interruzioni? :
- Ci stiamo lavorando. Ci impegniamo a renderla disponibile per tutti i browser su Android e a breve forniremo ulteriori dettagli.