Controlla come viene lanciata la tua app.
L'API Launch Handler ti consente di controllare il modo in cui viene avviata l'app, ad esempio se utilizza una finestra esistente o una nuova e se nella finestra scelta viene visualizzato l'URL di avvio. Come
per l'API File Handing, accoda anche un oggetto LaunchParams
nella window.launchQueue
della pagina avviata.
Stato attuale
Passaggio | Stato |
---|---|
1. Creare un'animazione esplicativa | Completato |
2. Crea la bozza iniziale delle specifiche | Completato |
3. Raccogli feedback e esegui l'iterazione sul design | Completa |
4. Prova dell'origine. | Completa |
5. Lancio | Completato |
Utilizzare l'API Launch Handler
Supporto browser
Interfacce
L'API Launch Gestori definisce due nuove interfacce.
LaunchParams
: un oggetto contenente il targetURL
da gestire dal consumer.
LaunchQueue
: avvia le code fino a quando non vengono gestite dal consumatore specificato.
Il membro del manifest launch_handler
Per specificare in modo dichiarativo il comportamento di avvio dell'app, aggiungi il membro del manifest launch_handler
al manifest. Ha un campo secondario denominato client_mode
. Consente di controllare se un client nuovo o esistente deve essere avviato e se questo client deve essere esplorato. L'esempio seguente mostra un file con valori di esempio che indirizzerebbero sempre tutti i lanci a un nuovo cliente.
{
"launch_handler": {
"client_mode": "navigate-new"
}
}
Se non specificato, il valore predefinito di launch_handler
è {"client_mode": "auto"}
. I valori consentiti per i campi secondari sono:
client_mode
:navigate-new
: viene creato un nuovo contesto di navigazione in una finestra dell'app web per caricare l'URL di destinazione del lancio.navigate-existing
: viene visualizzato l'URL target del lancio nel contesto di navigazione con cui è stata eseguita l'ultima interazione in una finestra dell'app web.focus-existing
: viene scelto il contesto di navigazione con cui è stata eseguita l'ultima interazione in una finestra dell'app web per gestire il lancio. Un nuovo oggettoLaunchParams
contargetURL
impostato sull'URL di lancio verrà inserito in coda nelwindow.launchQueue
del documento.auto
: il comportamento è responsabilità dell'agente utente, che decide cosa funziona meglio per la piattaforma. Ad esempio, i dispositivi mobili supportano solo i singoli client e utilizzerebberoexisting-client
, mentre i computer supportano più finestre e utilizzerebberonavigate-new
per evitare la perdita di dati.
La proprietà client_mode
accetta anche un elenco (array) di valori, in cui verrà utilizzato il primo valore valido. Ciò consente di aggiungere nuovi valori alle specifiche senza interrompere la compatibilità con le implementazioni esistenti.
Ad esempio, se viene aggiunto il valore ipotetico "focus-matching-url"
, i siti dovrebbero specificare "client_mode": ["focus-matching-url", "navigate-existing"]
per continuare a controllare il comportamento dei browser meno recenti che non supportavano "focus-matching-url"
.
Utilizzare window.launchQueue
Nel codice seguente, la funzione extractSongID()
estrae un songID
dall'URL
tramesso al momento dell'avvio. Viene utilizzato per riprodurre un brano in una PWA di un media player.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
Demo
Puoi trovare una demo dell'API Launch Handler in Demo di Launch Handler per PWA. Assicurati di controllare il codice sorgente dell'applicazione per vedere come utilizza l' API Launch Handler.
- Installa l'app Musicr 2.0.
- Inviati un link in un'applicazione di chat del tipo
https://launch-handler.glitch.me?track=https://example.com/music.mp3
. Puoi personalizzarehttps://example.com/music.mp3
per qualsiasi URL che rimandi a un file audio, ad esempiohttps://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190
. - Fai clic sul link nell'app di chat e osserva come si apre Musicr 2.0 e riproduce la traccia.
- Fai di nuovo clic sul link nell'app di chat e noterai che non verrà visualizzata una seconda istanza di Musicr 2.0.
Feedback
Il team di Chromium vuole conoscere le tue esperienze con l'API Launch Handler.
Parlaci della progettazione dell'API
C'è qualcosa nell'API che non funziona come previsto? Oppure mancano metodi o proprietà di cui hai bisogno per implementare la tua idea? Hai domande o commenti sul modello di sicurezza? Invia una segnalazione relativa alle specifiche nel repository GitHub corrispondente o aggiungi il tuo parere a un problema esistente.
Segnalare un problema con l'implementazione
Hai trovato un bug nell'implementazione di Chromium? Oppure l'implementazione è diversa dalle specifiche?
Segnala un bug all'indirizzo new.crbug.com. Assicurati di includere il maggior numero di dettagli possibile,
le istruzioni per la riproduzione e inserisci Blink>AppManifest
nella casella Componenti.
Glitch è ideale per condividere riproduzioni rapide.
Mostra il supporto per l'API
Intendi utilizzare l'API Launch Handler? Il supporto pubblico aiuta il team di Chromium a dare priorità alle funzionalità e mostra agli altri fornitori di browser quanto sia fondamentale supportarle.
Invia un tweet a @ChromiumDev usando l'hashtag
#LaunchHandler
e
facci sapere dove e come lo utilizzi.