Lancer l'API du gestionnaire

Contrôler le lancement de votre application

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

État actuel

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

Utiliser l'API Launch Handler

Prise en charge des navigateurs

Navigateurs pris en charge

  • Chrome : 110.
  • Edge: 110
  • Firefox: non compatible.
  • Safari: non compatible.

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 consommateur 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 du fichier manifeste. à votre fichier manifeste. Il contient un sous-champ appelé client_mode. Il vous permet de contrôler si un client nouveau ou existant doit être lancé et si ce client doit être navigué. L'exemple suivant montre un fichier avec des valeurs exemplaires qui achemine 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 le paramètre sont les suivants:

  • client_mode :
    • navigate-new: un contexte de navigation est créé dans une fenêtre d'application Web pour charger la cible du lancement. URL.
    • navigate-existing: dernier utilisateur ayant interagi avec le contexte de navigation dans une application Web est redirigée vers l'URL cible du lancement.
    • focus-existing : le contexte de navigation avec lequel vous avez interagi le plus récemment 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 décide de ce qui fonctionne le mieux pour la plate-forme. Pour Par exemple, les appareils mobiles n'acceptent qu'un seul client et utilisent existing-client, tandis que les ordinateurs de bureau prennent en charge plusieurs fenêtres et utiliseraient 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 endommager la rétrocompatibilité avec les implémentations existantes.

Par exemple, si la valeur hypothétique "focus-matching-url" est ajoutée, les sites doivent spécifier "client_mode": ["focus-matching-url", "navigate-existing"] pour continuer à contrôler 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 transmis 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émo

Vous pouvez voir une démonstration de l'API Launch Handler en action dans la démonstration du Launch Handler 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://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 votre application de chat. Vous verrez alors Musicr 2.0 s'ouvrir et lire le titre.
  4. Cliquez à nouveau sur le lien dans votre application de chat. Vous ne verrez pas une 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.

Parlez-nous de la conception de l'API

L'API ne fonctionne-t-elle pas comme prévu ? Ou manque-t-il des méthodes ou des propriétés dont vous avez besoin pour implémenter 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 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, des instructions pour reproduire le problème et saisissez Blink>AppManifest dans le champ Composants. Glitch est idéal pour partager des reproductions rapides.

Afficher la compatibilité avec l'API

Prévoyez-vous d'utiliser l'API Launch Handler ? Votre assistance publique aide l'équipe Chromium hiérarchisent 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