Passage des paramètres d’installation à votre application via le Programme d’installation d’application

Lors de la distribution de votre application à l’aide de MSIX, vous pouvez configurer votre application de telle sorte que les paramètres de chaîne de requête que vous définissez dans l’URI de téléchargement/installation sont transmis à votre application lors du lancement, après qu’un utilisateur clique sur l’URI de téléchargement/installation. Cela fonctionne si c’est la première fois qu’un utilisateur installe l’application ou si l’application a été installée précédemment. Cet article explique comment configurer votre application empaquetée et son URI de téléchargement/installation pour tirer parti de cette fonctionnalité. Cela peut être utile si vous souhaitez suivre ou gérer différentes installations en fonction de la source, du type de téléchargement, etc. et fonctionne pour les téléchargements web, et tous les autres cas où un utilisateur clique sur l’URI, par exemple à partir d’une campagne d’e-mail. Pour plus d’informations, consultez cet article de blog.

Configurer votre application pour l’activation du protocole

La première chose à faire consiste à inscrire votre application pour qu’elle soit lancée à l’aide d’un protocole personnalisé que vous définissez. Lorsque ce protocole est appelé, votre application est lancée et tous les paramètres spécifiés dans l’URI sont devenus des arguments d’événement d’activation de votre application lors du lancement. Vous pouvez inscrire le protocole en ajoutant une entrée d’extension de protocole dans le nœud Extensions d’application dans le fichier appxmanifest.xml de votre MSIX :

<Application>
...
   <Extensions>
     <uap:Extension Category="windows.protocol">
        <uap:Protocol Name="my-custom-protocol"/>
     </uap:Extension>
   </Extensions>
  
...
</Application>

Si vous utilisez le projet d’empaquetage Windows, vous pouvez également définir un protocole personnalisé à l’aide de l’éditeur de manifeste par défaut en double-cliquant sur le fichier package.appxmanifest, en accédant à l’onglet Déclarations et en sélectionnant Protocole sous les Déclarations disponibles :

Protocol declaration in package.appxmanifest

Écrire du code pour gérer les paramètres lorsque votre application est lancée après l’installation

Vous devez implémenter du code dans votre application pour gérer les paramètres d’installation qui seront transmis à votre application lors du lancement. L’exemple de code ci-dessous utilise la méthode AppInstance.GetActivatedEventArgs pour déterminer le type d’activation utilisé pour instancier une application (vous pouvez également gérer les paramètres à l’aide d’une autre méthode). Lorsque votre application est lancée/activée avec des paramètres de sting de requête à partir d’un URI d’installation (voir la définition dans la section suivante), le type d’activation sera une activation de protocole telle que définie par votre protocole personnalisé déclaré dans votre appxmanifest.xml et téléchargement/installation uri. Les arguments d’événement d’activation sont de type ProtocolActivatedEventArgs et c’est ce que le code ci-dessous utilise :


using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;

public static void Main(string[] cmdArgs)
{
            
    var activationArgs = AppInstance.GetActivatedEventArgs();
    switch (activationArgs.Kind)
    {
        //Install parameters will be passed in during a protocol activation
        case ActivationKind.Protocol:
        HandleProtocolActivation(activationArgs as ProtocolActivatedEventArgs);
        break;
        case ActivationKind.Launch:
        //Regular launch activation type
        HandleLaunch(activationArgs as LaunchActivatedEventArgs);
        break;
        default:
        break;
     }       
    

     static void HandleProtocolActivation(ProtocolActivatedEventArgs args)
     {

         if (args.Uri != null)
        {
            //Handle the installation parameters in the protocol uri
            handleInstallParameter(args.Uri.ToString());

        }
            
}

Ajouter votre protocole d’activation et vos paramètres personnalisés à l’URI d’installation

Une fois que votre application est configurée pour gérer vos paramètres d’installation, vous pouvez personnaliser l’URI de téléchargement/installation de l’application pour contenir des paramètres définis de manière unique qui seront transmis à votre application au lancement, après qu’un utilisateur clique sur l’URI. L’URI doit contenir :

  1. Protocole ms-appinstaller qui appelle le programme d’installation d’application.
  2. Le paramètre unique activationUri qui renvoie au protocole personnalisé de votre application et aux paramètres d’installation que vous souhaitez transmettre à votre application lors de son lancement.
  3. Le protocole personnalisé de votre application et le paramètre et sa valeur.

Dans l’exemple d’URI ci-dessous, j’ai défini un protocole personnalisé my-custom-protocol, un paramètre my-parameter et lui donné la valeur my-param-value. Lorsque l’application est lancée après qu’un utilisateur clique sur l’URI, elle reçoit la partie chaîne de requête de l’URI après activationUri, dans ce cas, qui sera my-custom-protocol :?my-parameter=my-param-value.

ms-appinstaller:?source=https://contoso.com/myapp.appinstaller&activationUri=my-custom-protocol:?my-parameter=my-param-value
ms-appinstaller:?source=https://contos.com/myapp.msix&activationUri=my-custom-protocol:?my-parameter=my-param-value