Lancer l'API du gestionnaire

Contrôlez le lancement de votre application.

L'API Launch Handler vous permet de contrôler le mode de lancement de votre application, par exemple si elle utilise une fenêtre existante ou nouvelle, et si la fenêtre choisie redirige vers l'URL de lancement. Comme avec l'API File Handing, un objet LaunchParams est également mis en file d'attente dans le fichier window.launchQueue de la page lancée.

État actuel

Step État
1. Créer une vidéo explicative Fin
2. Créer une ébauche initiale de spécification Fin
3. Recueillir les commentaires et itérer sur la conception Terminé
4. Phase d'évaluation. Terminé
5. Lancement Fin

Utiliser l'API Launch Handler

Prise en charge des navigateurs

Le gestionnaire de lancement n'est disponible que sur ChromeOS.

Navigateurs pris en charge

  • 110
  • 110
  • x
  • x

Source

Interfaces

L'API Launch Handler définit deux nouvelles interfaces.

LaunchParams : objet contenant les targetURL que le consommateur doit traiter. LaunchQueue : les files d'attente se lancent jusqu'à ce qu'elles soient traitées par le consommateur spécifié.

Membre du fichier manifeste launch_handler

Pour spécifier le comportement de lancement de votre application de manière déclarative, ajoutez le membre launch_handler au fichier manifeste. Elle comporte un sous-champ appelé client_mode. Elle vous permet de déterminer si un client nouveau ou existant doit être lancé et si ce client doit être parcouru. L'exemple ci-dessous montre un fichier avec des valeurs exemples qui acheminent toujours tous les lancements vers un nouveau client.

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

Si aucune valeur n'est spécifiée, launch_handler est défini par défaut sur {"client_mode": "auto"}. Les valeurs autorisées pour les sous-champs sont les suivantes:

  • client_mode:
    • navigate-new: un nouveau contexte de navigation est créé dans une fenêtre d'application Web pour charger l'URL cible du lancement.
    • navigate-existing: la dernière interaction avec le contexte de navigation dans une fenêtre d'application Web permet d'accéder à l'URL cible du lancement.
    • focus-existing: le dernier élément ayant interagi avec le contexte de navigation dans une fenêtre d'application Web est choisi pour gérer le lancement. Un nouvel objet LaunchParams, dont l'targetURL est défini sur l'URL de lancement, sera mis en file d'attente dans l'élément window.launchQueue du document.
    • auto: le comportement appartient au user-agent afin de déterminer ce qui fonctionne le mieux pour la plate-forme. Par exemple, les appareils mobiles ne prennent en charge que les clients uniques et utilisent existing-client, tandis que les ordinateurs de bureau prennent en charge plusieurs fenêtres et utilisent navigate-new pour éviter la perte de données.

La propriété client_mode accepte également une liste (tableau) de valeurs, dans laquelle la première valeur valide sera utilisée. Cela permet d'ajouter de nouvelles valeurs à la spécification sans rompre la rétrocompatibilité avec les implémentations existantes.

Par exemple, si la valeur hypothétique "focus-matching-url" était ajoutée, les sites spécifieraient "client_mode": ["focus-matching-url", "navigate-existing"] pour continuer à contrôler le comportement des navigateurs plus anciens qui n'étaient pas compatibles avec "focus-matching-url".

Utiliser window.launchQueue

Dans le code suivant, la fonction extractSongID() extrait un songID de l'URL transmise lors du lancement. Permet de lire un titre dans la PWA d'un lecteur de musique.

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

Démonstration

Pour voir une démonstration de l'API Launch Handler en action, consultez la démonstration du gestionnaire de lancement des PWA. Veillez à consulter le code source de l'application pour voir comment elle utilise l'API Launch Handler.

  1. Installez l'application Musicr 2.0 sur un appareil ChromeOS.
  2. Envoyez-vous un lien dans une application de chat au format https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Vous pouvez personnaliser https://example.com/music.mp3 pour toute URL pointant vers un fichier audio, par exemple https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. Cliquez sur le lien dans l'application de chat pour voir comment Musicr 2.0 s'ouvre et lit le titre.
  4. Cliquez à nouveau sur le lien dans votre application de chat et notez que vous n'obtiendrez pas de deuxième instance de Musicr 2.0.

Commentaires

L'équipe Chromium souhaite connaître votre avis sur l'API Launch Handler.

Décrivez-nous la conception de l'API

Y a-t-il un problème avec l'API qui ne fonctionne pas comme prévu ? Ou manque-t-il des méthodes ou des propriétés nécessaires à la mise en œuvre de votre idée ? Vous avez une question ou un commentaire sur le modèle de sécurité ? Signalez un problème spécifique dans le dépôt GitHub correspondant ou ajoutez vos réflexions à un problème existant.

Signaler un problème d'implémentation

Avez-vous repéré un bug dans l'implémentation de Chromium ? Ou la mise en œuvre est-elle différente des spécifications ? Signalez un bug sur new.crbug.com. Veillez à inclure autant de détails que possible, ainsi que des instructions simples pour le reproduire, puis saisissez Blink>AppManifest dans la zone Composants. Glitch est idéal pour partager des reproductions rapides et faciles.

Montrer votre compatibilité avec l'API

Comptez-vous utiliser l'API Launch Handler ? Votre assistance publique aide l'équipe Chromium à hiérarchiser les fonctionnalités et montre aux autres fournisseurs de navigateurs à quel point il est essentiel de les prendre en charge.

Envoyez un tweet à @ChromiumDev en utilisant le hashtag #LaunchHandler, et indiquez-nous où et comment vous l'utilisez.

Liens utiles