Lancer l'API du gestionnaire

Contrôlez le mode de 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 une nouvelle fenêtre, et si la fenêtre choisie permet d'accéder à l'URL de lancement. Comme pour 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 l'ébauche initiale de la spécification Fin
3. Recueillir les commentaires et améliorer 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 le targetURL à gérer par le consommateur. LaunchQueue : les files d'attente sont lancées jusqu'à ce qu'elles soient gérées par le client spécifié.

Le membre launch_handler du fichier manifeste

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

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

Si aucune valeur n'est spécifiée, la valeur par défaut de launch_handler est {"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: le dernier utilisateur ayant interagi avec le contexte de navigation dans une fenêtre d'application Web est redirigé vers l'URL cible du lancement.
    • focus-existing: la dernière interaction avec le contexte de navigation dans une fenêtre d'application Web est choisie pour gérer le lancement. Un nouvel objet LaunchParams dont le targetURL est défini sur l'URL de lancement sera mis en file d'attente dans le fichier window.launchQueue du document.
    • auto: c'est au user-agent de décider ce qui fonctionne le mieux pour la plate-forme. Par exemple, les appareils mobiles n'acceptent qu'un seul client et utilisent existing-client, tandis que les appareils de bureau acceptent plusieurs fenêtres et utilisent navigate-new pour éviter toute 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 "focus-matching-url" hypothétique est ajoutée, les sites spécifient "client_mode": ["focus-matching-url", "navigate-existing"] pour continuer à contrôler le comportement des anciens navigateurs non 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. Utilisé pour lire un titre dans une PWA de 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, consultez la démonstration du gestionnaire de lancement de PWA. N'oubliez pas de 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 n'importe quelle 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 votre application de chat. Vous verrez 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 votre expérience avec l'API Launch Handler.

Présentez-nous la conception de l'API

Y a-t-il un aspect de l'API qui ne fonctionne pas comme prévu ? Ou s'il manque des méthodes ou des propriétés dont vous avez besoin pour mettre en œuvre votre idée ? Vous avez une question ou un commentaire sur le modèle de sécurité ? Signalez un problème de spécification dans le dépôt GitHub correspondant ou ajoutez vos commentaires à un problème existant.

Signaler un problème d'implémentation

Avez-vous détecté un bug dans l'implémentation de Chromium ? Ou l'implémentation est-elle différente des spécifications ? Signalez un bug sur new.crbug.com. Veillez à inclure autant de détails que possible et des instructions simples pour reproduire le bug, et saisissez Blink>AppManifest dans la zone Composants. Glitch est idéal pour partager des répétitions rapidement et facilement.

Apportez votre soutien à l'API

Prévoyez-vous d'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 avec le hashtag #LaunchHandler, et indiquez-nous où et comment vous l'utilisez.

Liens utiles