Partager via


Comment lancer l’application par défaut d’un URI (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Découvrez comment lancer l’application par défaut d’un URI (Uniform Resource Identifier). Les URI vous permettent de lancer une autre application sur le système d’exploitation afin d’effectuer une tâche spécifique. Par exemple, si vous voulez autoriser l’utilisateur à envoyer un message à un contact dans votre application, vous pouvez utiliser l’URI mailto: pour lancer l’application de messagerie électronique par défaut de l’utilisateur.

Ces étapes vous montrent comment utiliser l’API Windows.System.Launcher pour lancer le gestionnaire par défaut d’un URI.

Instructions

Étape 1: Créer l’URI

Créez un objet Windows.Foundation.Uri pour l’URI à lancer. L’URI utilise le nom de schéma HTTP.


// The URI to launch
var uriToLaunch = "https://www.bing.com";

// Create a Uri object from a URI string 
var uri = new Windows.Foundation.Uri(uriToLaunch);

Étape 2: Lancer l’URI

Le système d’exploitation fournit plusieurs options différentes pour le lancement du gestionnaire par défaut d’un URI. Ces options sont décrites dans ce tableau et dans les sections qui suivent.

Option Méthode Description
Lancement par défaut LaunchUriAsync(Uri) Lancer l’URI spécifié avec le gestionnaire par défaut.
Lancer avec un boîte de dialogue d’avertissement LaunchUriAsync(Uri, LauncherOptions) Le système d’exploitation affiche une boîte de dialogue d’avertissement avant de lancer l’URI spécifié.
Lancer avec une application de secours recommandée LaunchUriAsync(Uri, LauncherOptions) Lancer l’URI spécifié avec le gestionnaire par défaut. Si aucun gestionnaire n’est installé sur le système, recommandez une application du Windows Store à l’utilisateur.
Lancer avec un affichage restant souhaité LaunchUriAsync(Uri, LauncherOptions) (Windows uniquement) Lancer l’URI spécifié avec le gestionnaire par défaut. Spécifier une préférence à conserver à l’écran après le lancement et demander une taille de fenêtre spécifique.

Windows 8.1:  L’attribut LauncherOptions.DesiredRemainingView n’est pas pris en charge dans les versions antérieures à Windows 8.1 et Windows Server 2012 R2.

Windows Phone:  La propriété LauncherOptions.DesiredRemainingView n’est pas prise en charge pour Windows Phone.

 

Ces exemples utilisent la méthode Windows.System.Launcher.launchUriAsync pour lancer l’URI. Il s’agit d’une méthode surchargée.

Default launch

Appelez la méthode Windows.System.Launcher.launchUriAsync(Uri) pour lancer l’URI créé à l’étape 1 à l’aide de l’application par défaut de l’URI HTTP.

// Launch the URI
Windows.System.Launcher.launchUriAsync(uri).then(   
   function (success) {
      if (success) {
        // URI launched
      } else {
        // URI launch failed
      }
   });

Launch with a warning dialog

Appelez la méthode Windows.System.Launcher.launchUriAsync(Uri, LauncherOptions) pour lancer l’URI créé à l’étape 1 avec un avertissement. Utilisez la propriété treatAsUntrusted pour indiquer que le système d’exploitation doit afficher un avertissement.

Remarque  

Appelez preventDefault dans votre gestionnaire d’événements si la propriété treatAsUntrusted est définie et que vous utilisez un élément a pour lancer l’URI.

 

Une boîte de dialogue d’avertissement recouvrant un arrière-plan grisé de l’application. La boîte de dialogue demande à l’utilisateur s’il veut passer d’une application à l’autre et dispose de boutons « Oui » et « Non » en bas à droite. Le bouton « Non » est en surbrillance.

function linkClickHandler(eventInfo) {
    var link = eventInfo.target;
    if (eventInfo.srcElement && (
        (eventInfo.type === "click") ||
        (eventInfo.type === "keydown" && (
        eventInfo.keyCode === WinJS.Utilities.Key.enter ||
        eventInfo.keyCode === WinJS.Utilities.Key.space)))) {
        eventInfo.preventDefault();
        if (link.href.indexOf("ms-appx") > -1) {
            WinJS.Navigation.navigate(link.href);
        }
        else if (link.href.indexOf("http") > -1) {
            // Create a Uri object from a URI string 
            var uri = new Windows.Foundation.Uri(link.href);
            var options = new Windows.System.LauncherOptions();
            // Launch the URI with a warning prompt
            options.treatAsUntrusted = true;
            // Launch the URI
            Windows.System.Launcher.launchUriAsync(uri, options).then(
                function (success) {
                    if (success) {
                        // URI launched
                    } else {
                        // URI launch failed
                    }
                });
        }
    }
}

Launch with a recommended app fallback

Dans certains cas, l’utilisateur ne dispose pas forcément d’une application installée pour gérer l’URI que vous lancez. Par défaut, le système d’exploitation gère ces cas en fournissant à l’utilisateur un lien pour rechercher une application appropriée dans le Windows Store. Si vous voulez recommander à l’utilisateur l’acquisition d’une application spécifique dans ce scénario, vous pouvez passer cette recommandation avec le fichier que vous lancez. Pour ce faire, appelez la méthode Windows.System.Launcher.LaunchUriAsync(Uri, LauncherOptions) avec LauncherOptions.preferredApplicationPackageFamilyName ayant pour valeur le nom de famille du package de l’application que vous voulez recommander dans le Windows Store. Affectez ensuite à LauncherOptions.preferredApplicationDisplayName le nom de cette application. Le système d’exploitation utilise cette information pour remplacer l’option générale permettant de rechercher une application dans le Windows Store par une option spécifique permettant d’acquérir l’application recommandée dans le Windows Store.

Remarque  Vous devez définir ces deux options pour recommander une application. La définition de l’une sans l’autre conduit à un échec.

 

La boîte de dialogue Ouvrir avec pour le lancement d’un URI contoso. Étant donné qu’aucun gestionnaire n’est installé sur l’ordinateur pour les fichiers .contoso, la boîte de dialogue contient une option avec l’icône du Windows Store et du texte qui indique à l’utilisateur le gestionnaire approprié sur le Windows Store. La boîte de dialogue contient également un lien « Autres options ».

// Set the recommended app.
var options = new Windows.System.LauncherOptions();
options.preferredApplicationPackageFamilyName = "Contoso.URIApp_8wknc82po1e";
options.preferredApplicationDisplayName = "Contoso URI App";

// Launch the URI and pass in the recommended app 
// in case the user has no apps installed to handle the URI
Windows.System.Launcher.launchUriAsync(uri, options).then(
   function (success) {
      if (success) {
        // Uri launched
      } else {
        // Uri launch failed
      }
   });

Lancer avec un affichage restant souhaité (Windows uniquement)

Les applications sources qui appellent la méthode LaunchUriAsync peuvent demander à rester à l’écran après le lancement d’un URI. Par défaut, Windows essaie de partager tout l’espace disponible de manière équitable entre l’application source et l’application cible qui gère l’URI. Les applications sources peuvent utiliser la propriété DesiredRemainingView pour indiquer au système d’exploitation qu’elles préfèrent que leur fenêtre d’application occupe une plus grande ou plus petite partie de l’espace disponible. La propriété DesiredRemainingView peut également servir à indiquer que l’application source n’a pas besoin de rester à l’écran après le lancement de l’URI et qu’elle peut être complètement remplacée par l’application cible. Cette propriété spécifie uniquement la taille de fenêtre par défaut de l’application appelante. Elle ne spécifie pas le comportement d’autres applications qui peuvent se trouver en même temps sur l’écran.

Remarque  Windows tient compte de plusieurs facteurs différents pour déterminer la taille finale de la fenêtre de l’application source, par exemple, la préférence de l’application source, le nombre d’applications à l’écran, l’orientation de l’écran, etc. La définition de la propriété DesiredRemainingView ne garantit pas un comportement de fenêtrage spécifique pour l’application cible.

 

Windows 8.1: La propriété LauncherOptions.DesiredRemainingView n’est pas prise en charge dans les versions antérieures à Windows 8.1 et Windows Server 2012 R2.

Windows Phone: La propriété LauncherOptions.DesiredRemainingView n’est pas prise en charge pour Windows Phone.

// Launch the URI with a desired remaining view
var options = new Windows.System.LauncherOptions();
options.desiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.useLess;

Windows.System.Launcher.launchUriAsync(uri, options).then(
   function (success) {
      if (success) {
        // URI launched
      } else {
        // URI launch failed
      }
   });

Remarques

Votre application ne peut pas sélectionner l’application qui est lancée. L’utilisateur détermine quelle application est lancée. L’utilisateur peut sélectionner une application du Windows Store ou une application de bureau.

Lors du lancement d’un URI, votre application doit être l’application au premier plan, c’est-à-dire qu’elle doit être visible pour l’utilisateur. Cette condition permet de garantir que l’utilisateur conserve le contrôle. Pour pouvoir la respecter, assurez-vous que vous avez relié directement tous les lancements d’URI à l’interface utilisateur de votre application. L’utilisateur doit toujours exercer une action pour initier un lancement d’URI. Si vous tentez de lancer un URI alors que votre application n’est pas au premier plan, le lancement échoue et votre rappel d’erreur est appelé.

Vous devez spécifier la fonctionnalité privateNetworkClientServer afin de lancer des URI d’intranet ; par exemple, un URI file:/// pointant vers un emplacement réseau.

Vous ne pouvez pas utiliser cette méthode pour lancer un URI dans la zone locale. Par exemple, les applications ne peuvent pas utiliser l’URI file:/// pour accéder aux fichiers sur le périphérique local. À la place, vous devez utiliser les Storage APIs pour accéder aux fichiers. Si vous tentez de lancer un URI d’intranet sans la fonctionnalité appropriée ou un URI de zone locale, le lancement échoue et votre rappel d’erreur est appelé.

Terminer l’exemple

Voir Exemple d’association pour un lancement d’application (Windows).

Rubriques associées

Tâches

Comment gérer l’activation du protocole

Comment lancer l’application par défaut d’un fichier

Recommandations

Recommandations et liste de vérification sur les types de fichiers et les URI

Référence

Windows.System.Launcher.launchUriAsync