Avvia API gestore

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.

Supporto del browser

  • 110
  • 110
  • x
  • x

Fonte

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 oggetto LaunchParams con targetURL impostato sull'URL di avvio verrà accodato nel window.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 utilizzano existing-client, mentre i dispositivi desktop supportano più finestre e usano navigate-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.

  1. Installa l'app Musicr 2.0 su un dispositivo ChromeOS.
  2. Inviati un link in un'applicazione di chat del modulo https://launch-handler.glitch.me?track=https://example.com/music.mp3. Puoi personalizzare https://example.com/music.mp3 per qualsiasi URL che rimanda a un file audio, ad esempio https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190.
  3. Fai clic sul link nell'app di chat e guarda come Musicr 2.0 si apre e riproduce la traccia.
  4. 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.

Link utili