Lancer l'API du gestionnaire

Contrôlez le lancement de votre application.

L'API Launch Handler vous permet de contrôler le lancement de votre application. Par exemple, vous pouvez choisir d'utiliser une fenêtre existante ou d'en ouvrir une nouvelle, et de naviguer vers l'URL de lancement dans la fenêtre choisie. Comme pour l'API File Handling, cela met également en file d'attente un objet LaunchParams dans le window.launchQueue de la page lancée.

État actuel

Étape État
1. Créer une explication Fin
2. Créer une première ébauche de spécification Fin
3. Recueillir des commentaires et améliorer la conception Terminé
4. Essai Origin Trial. Terminé
5. Lancement Fin

Utiliser l'API Launch Handler

Prise en charge des navigateurs

Interfaces

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

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

Membre du fichier manifeste launch_handler

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

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

Si aucune valeur n'est spécifiée, launch_handler prend la valeur par défaut {"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 contexte de navigation le plus récemment utilisé dans une fenêtre d'application Web est redirigé vers l'URL cible du lancement.
    • focus-existing : le contexte de navigation le plus récemment utilisé dans une fenêtre d'application Web est choisi 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 window.launchQueue du document.
    • auto : le comportement dépend de l'agent utilisateur, qui doit déterminer ce qui convient le mieux à la plate-forme. Par exemple, les appareils mobiles ne sont compatibles qu'avec un seul client et utilisent existing-client, tandis que les ordinateurs de bureau sont compatibles avec 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, où la première valeur valide sera utilisée. Cela permet d'ajouter de nouvelles valeurs à la spécification sans compromettre 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 anciens navigateurs qui ne sont pas compatibles avec "focus-matching-url".

Utiliser window.launchQueue

Dans le code suivant, la fonction extractSongID() extrait un songID de l'URL transmise au lancement. Ceci est 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émo

Vous pouvez voir une démonstration de l'API Launch Handler en action dans la démonstration de Launch Handler pour les 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.
  2. Envoyez-vous un lien dans une application de chat au format https://mdn.github.io/dom-examples/launch-handler/?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://mdn.github.io/dom-examples/launch-handler/?track=https://huggingface.co/spaces/VIDraft/PHI4-Multimodal/resolve/main/examples/harvard.wav.)
  3. Cliquez sur le lien dans votre application de chat et remarquez comment Musicr 2.0 s'ouvre et lit le titre.
  4. Cliquez à nouveau sur le lien dans votre application de chat et remarquez que vous n'obtiendrez pas une deuxième instance de Musicr 2.0.

Commentaires

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

Parlez-nous de la conception de l'API

Y a-t-il un aspect de l'API qui ne fonctionne pas comme prévu ? Ou bien manquent-ils 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 lié aux spécifications dans le dépôt GitHub correspondant ou ajoutez vos commentaires à un problème existant.

Signaler un problème d'implémentation

Avez-vous trouvé un bug dans l'implémentation de Chromium ? Ou l'implémentation est-elle différente de la spécification ? Signalez un bug sur new.crbug.com. Veillez à inclure autant de détails que possible, ainsi que des instructions pour reproduire le problème, et saisissez Blink>AppManifest dans la zone Composants.

Soutenir l'API

Comptez-vous utiliser l'API Launch Handler ? Votre soutien public 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 dites-nous où et comment vous l'utilisez.

Liens utiles