Partager via


Comment lancer l’application par défaut pour un fichier (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 pour un fichier. De nombreuses applications doivent utiliser des fichiers qu’elles ne peuvent pas gérer elles-mêmes. Par exemple, les applications de messagerie électronique reçoivent une grande variété de types de fichiers, et ont besoin d’un moyen de lancer ces fichiers dans leurs gestionnaires par défaut.

Ces étapes montrent comment utiliser l’API Windows.System.Launcher pour lancer le gestionnaire par défaut d’un fichier que votre application ne peut pas gérer elle-même.

Instructions

Étape 1: Obtenir le fichier

Tout d’abord, obtenez un objet Windows.Storage.StorageFile pour le fichier.

Si le fichier est inclus dans le package de votre application, vous pouvez utiliser la propriété Package.installedLocation pour obtenir un objet Windows.Storage.StorageFolder et la méthode Windows.Storage.StorageFolder.getFileAsync pour obtenir l’objet StorageFile.

Si le fichier se trouve dans un dossier connu, vous pouvez utiliser les propriétés de la classe Windows.Storage.KnownFolders pour obtenir un élément StorageFolder et la méthode getFileAsync pour obtenir l’objet StorageFile.

Étape 2: Lancer le fichier

Windows fournit plusieurs options différentes pour le lancement du gestionnaire par défaut d’un fichier. Ces options sont décrites dans le tableau suivant et dans la section ci-dessous.

Option Méthode Description
Lancement par défaut LaunchFileAsync(IStorageFile) Lancer le fichier spécifié avec le gestionnaire par défaut.
Ouvrir avec lancement LaunchFileAsync(IStorageFile, LauncherOptions) Lancer le fichier spécifié en laissant l’utilisateur choisir le gestionnaire dans la boîte de dialogue Ouvrir avec.
Lancer avec une application de secours recommandée LaunchFileAsync(IStorageFile, LauncherOptions) Lancer le fichier 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é LaunchFileAsync(IStorageFile, LauncherOptions) (Windows uniquement) Lancer le fichier 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.

 

Default launch

Appelez la méthode Windows.System.Launcher.launchFileAsync(IStorageFile) pour lancer l’application par défaut. Cet exemple utilise la méthode Windows.Storage.StorageFolder.getFileAsync pour lancer un fichier d’image, test.png, inclus dans le package de l’application.


// Path to the file in the app package to launch
var imageFile = "images\\test.png";

// Get the image file from the package's image directory
Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(imageFile).then(
  function (file) {
    // Launch the retrieved file using the default app
    Windows.System.Launcher.launchFileAsync(file).then(
      function (success) {
        if (success) {
            // File launched
        } else {
            // File launch failed
        }
      });
  });

Open with launch

Appelez la méthode Windows.System.Launcher.launchFileAsync(IStorageFile, LauncherOptions) avec LauncherOptions.displayApplicationPicker défini sur true pour lancer l’application que l’utilisateur sélectionne dans la boîte de dialogue Ouvrir avec.

Nous vous recommandons d’utiliser la boîte de dialogue Ouvrir avec lorsque l’utilisateur souhaite sélectionner une application qui ne soit pas l’application par défaut pour un fichier particulier. Par exemple, si votre application permet à l’utilisateur de lancer un fichier image, le gestionnaire par défaut sera probablement une visionneuse. Dans certains cas, l’utilisateur peut vouloir modifier l’image au lieu de la visualiser. Utilisez l’option Ouvrir avec au moyen d’une autre commande dans la barre de l’application ou dans un menu contextuel afin de permettre à l’utilisateur d’afficher la boîte de dialogue Ouvrir avec et de sélectionner l’éditeur dans ces types de scénarios.

La boîte de dialogue Ouvrir avec pour le lancement d’un fichier .png. Cette boîte de dialogue comprend une case à cocher qui indique si le choix de l’utilisateur doit être utilisé pour tous les fichiers .png ou uniquement pour ce fichier .png. Elle contient quatre options d’application pour le lancement du fichier, ainsi qu’un lien « Autres options ».


// Path to the file in the app package to launch
var imageFile = "images\\test.png";

// Get the image file from the package's image directory
Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(imageFile).then(
  function (file) {
    // Set the show picker option
    var options = new Windows.System.LauncherOptions();
    options.displayApplicationPicker = true;

    // Launch the retrieved file using the selected app
    Windows.System.Launcher.launchFileAsync(file, options).then(
      function (success) {
        if (success) {
            // File launched
        } else {
            // File 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 le fichier 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.launchFileAsync(IStorageFile, 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 fichier .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 ».


// Path to the file in the app package to launch
var imageFile = "images\\test.contoso";

// Get the image file from the package's image directory
Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(imageFile).then(
  function (file) {
    // Set the recommended app
    var options = new Windows.System.LauncherOptions();
    options.preferredApplicationPackageFamilyName = "Contoso.FileApp_8wknc82po1e";
    options.preferredApplicationDisplayName = "Contoso File App";


    // Launch the retrieved file pass in the recommended app 
    // in case the user has no apps installed to handle the file
    Windows.System.Launcher.launchFileAsync(file, options).then(
      function (success) {
        if (success) {
            // File launched
        } else {
            // File launch failed
        }
      });
  });

Lancer avec un affichage restant souhaité (Windows uniquement)

Les applications sources qui appellent la méthode LaunchFileAsync peuvent demander à rester à l’écran après le lancement d’un fichier. 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 le fichier. 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 du fichier 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.

// Path to the file in the app package to launch
var imageFile = "images\\test.png";

// Get the image file from the package's image directory
Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(imageFile).done(
  function (file) {
    // Set the desired remaining view
    var options = new Windows.System.LauncherOptions();
    options.desiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.useLess;

    // Launch the retrieved file using the selected app
    Windows.System.Launcher.launchFileAsync(file, options).done(
      function (success) {
        if (success) {
            // File launched
        } else {
            // File 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 fichier, 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, veillez à relier directement tous les lancements de fichiers à l’interface utilisateur de votre application. Dans la majorité des cas, l’utilisateur doit toujours exercer une action pour initier un lancement de fichier. Si vous essayez de lancer un fichier alors que votre application n’est pas au premier plan, le lancement échoue et votre rappel d’erreur est appelé.

Vous ne pouvez pas lancer des types de fichiers qui contiennent du code ou un script s’ils sont exécutés automatiquement par le système d’exploitation, tels que les fichiers .exe, .msi et .js. Cette restriction protège les utilisateurs de fichiers potentiellement malveillants susceptibles de modifier le système d’exploitation. Vous pouvez utiliser cette méthode pour lancer des types de fichiers qui contiennent un script s’ils sont exécutés automatiquement par une application qui isole le script, tels que les fichiers .docx. Les applications comme Microsoft Word empêchent le script de modifier le système d’exploitation dans des fichiers .docx.

Si vous essayez de lancer un type de fichier restreint, le lancement se soldera par un échec et votre rappel d’erreur sera appelé. Si votre application gère de nombreux types de fichiers divers et que vous vous attendez à rencontrer cette erreur, nous vous recommandons de proposer un mécanisme de secours à vos utilisateurs. Par exemple, vous pouvez leur offrir comme option d’enregistrer le fichier sur le Bureau pour l’ouvrir depuis cet emplacement.

Terminer l’exemple

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

Rubriques associées

Tâches

Comment gérer l’activation des fichiers

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

Recommandations

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

Référence

Windows.Storage.StorageFile

Windows.System.Launcher.launchFileAsync