Stabilisci come avviare l'app.
L'API Launch Gestore ti consente di controllare in che modo viene lanciata l'app, ad esempio se utilizza una finestra esistente o una nuova e se la finestra scelta viene indirizzata all'URL di avvio. Come per l'API File Handing, anche un oggetto LaunchParams
accoda nell'elemento window.launchQueue
della pagina avviata.
Stato attuale
Passaggio | Stato |
---|---|
1. Crea esplicativo | Completato |
2. Crea bozza iniziale della specifica | Completato |
3. Raccogli feedback e riformula il design | Completata |
4. Prova dell'origine. | Completata |
5. Lancio | Completato |
Utilizzo dell'API Launch Gestore
Supporto del browser
La funzionalità Avvia gestore è disponibile solo su ChromeOS.
Interfacce
L'API Launch Gestore definisce due nuove interfacce.
LaunchParams
: un oggetto contenente targetURL
che deve essere gestito dal consumatore.
LaunchQueue
: avvia la coda finché non viene gestita dal consumer specificato.
Membro del file manifest launch_handler
Per specificare in modo dichiarativo il comportamento di avvio dell'app, aggiungi il membro del manifest launch_handler
al tuo manifest. Ha un campo secondario denominato client_mode
. Consente di controllare se avviare un client nuovo o esistente e se questo client deve essere esplorato. L'esempio riportato di seguito mostra un file con valori di esempio che indirizzano sempre tutti i lanci a un nuovo client.
{
"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 nella finestra di un'app web per caricare l'URL di destinazione del lancio.navigate-existing
: l'utente che ha interagito più di recente con il contesto di navigazione in una finestra di app web viene indirizzato all'URL di destinazione del lancio.focus-existing
: per gestire il lancio viene scelto l'utente che ha interagito più di recente con il contesto di navigazione in una finestra di app web. Un nuovo oggettoLaunchParams
contargetURL
impostato sull'URL di avvio verrà accodato nelwindow.launchQueue
del documento.auto
: Spetta allo user agent decidere cosa funziona meglio per la piattaforma. Ad esempio, i dispositivi mobili supportano solo client singoli e utilizzanoexisting-client
, mentre i dispositivi desktop supportano più finestre e usanonavigate-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 compromettere la compatibilità con le implementazioni esistenti.
Ad esempio, se venisse aggiunto l'ipotetico valore "focus-matching-url"
, i siti specificherebbero "client_mode": ["focus-matching-url", "navigate-existing"]
per continuare a controllare il comportamento dei browser meno recenti che non supportano "focus-matching-url"
.
Utilizzo di window.launchQueue
Nel codice seguente, la funzione extractSongID()
estrae songID
dall'URL trasmesso all'avvio. Viene usato per riprodurre un brano nella PWA di un lettore musicale.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
Demo
Puoi vedere una demo dell'API Launch Handler in azione nella demo del gestore di lancio PWA. Assicurati di controllare il codice sorgente dell'applicazione per vedere come utilizza l'API Launch Gestore.
- Installa l'app Musicr 2.0 su un dispositivo ChromeOS.
- Inviati un link in un'applicazione di chat del modulo
https://launch-handler.glitch.me?track=https://example.com/music.mp3
. Puoi personalizzarehttps://example.com/music.mp3
per qualsiasi URL che rimanda 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 guarda come Musicr 2.0 si apre e riproduce la traccia.
- Fai di nuovo clic sul link nell'app di chat e noterai che non riceverai una seconda istanza di Musicr 2.0.
Feedback
Il team di Chromium vuole saperne di più sulle tue esperienze con l'API Launch Handler.
Parlaci del design 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? Segnala un problema di specifiche nel repository GitHub corrispondente o aggiungi le tue opinioni su un problema esistente.
Segnalare un problema di 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 possibile di dettagli, semplici istruzioni per la riproduzione e inserisci Blink>AppManifest
nella casella Componenti.
Glitch è perfetto per condividere riproduzioni facili e veloci.
Mostra il supporto per l'API
Hai intenzione di utilizzare l'API Launch Gestore? Il tuo supporto pubblico aiuta il team di Chromium a dare la priorità alle funzionalità e mostra ad altri fornitori di browser quanto è fondamentale supportarle.
Invia un tweet a @ChromiumDev usando l'hashtag
#LaunchHandler
e
facci sapere dove e come lo usi.