Übergeben von Installationsparametern an Ihre APP über den APP-InstallerPassing installation parameters to your app via App Installer

Wenn Sie Ihre APP mit msix verteilen, können Sie Ihre APP so konfigurieren, dass Abfrage Zeichenfolgen-Parameter, die Sie im Download-/installationsuri definieren, beim Start an Ihre APP weitergeleitet werden, nachdem ein Benutzer auf den Download-/installationsuri geklickt hat.When distributing your app using MSIX you can configure your app such that query string parameters you define in the download/install uri are passed on to your app when it launches, after a user clicks on the download/install uri. Dies funktioniert unabhängig davon, ob ein Benutzer die APP zum ersten Mal installiert oder ob die APP zuvor installiert wurde.This works whether it's the first time a user is installing the app or if the app was previously installed. In diesem Artikel wird beschrieben, wie Sie Ihre msix-Paket Anwendung und Ihren Download-/installationsuri konfigurieren, um diese Funktionalität zu nutzen.This article shows how to configure your MSIX packaged application and its download/install uri to take advantage of this functionality. Dies kann hilfreich sein, wenn Sie verschiedene Installationen basierend auf der Quelle, dem herunter Ladungstyp usw. nachverfolgen oder verarbeiten möchten, und auch in allen anderen Fällen, in denen ein Benutzer auf den URI klickt (z. b. aus einer e-Mail-Kampagne).This can be useful if you want to track or handle different installs based on the source, download type etc and will work for web downloads, and any other cases where a user clicks the uri e.g. from an email campaign. Weitere Informationen finden Sie in diesem Blogbeitrag.For more details check out this blog post.

Konfigurieren der Anwendung für die Protokoll AktivierungConfigure your application for protocol activation

Als erstes müssen Sie Ihre APP registrieren, damit Sie mit einem von Ihnen definierten benutzerdefinierten Protokoll gestartet wird.The first thing to do is to register your app for it to be launched using a custom protocol you define. Wenn dieses Protokoll aufgerufen wird, wird die Anwendung gestartet, und alle im URI angegebenen Werte werden beim Start an die Aktivierungs Ereignis Argumente Ihrer APP übermittelt.When this protocol is invoked, your application is launched and any prameters specified in the uri are passed to your app's activation event arguments when it is launched. Sie können das Protokoll registrieren, indem Sie im Knoten Anwendungs Erweiterungen in der appxmanifest.xml Datei Ihres msix-Protokolls einen Eintrag für die Protokollerweiterung hinzufügen:You can register the protocol by adding a protocol extension entry in the Application Extensions node in your MSIX's appxmanifest.xml file:

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

Wenn Sie das Windows- PaketErstellungs Projekt verwenden, können Sie auch ein benutzerdefiniertes Protokoll mithilfe des Standard-Manifest-Editors definieren, indem Sie auf die Datei " Package. appxmanifest " doppelklicken, zur Registerkarte " Deklarationen " navigieren und unter Verfügbare DeklarationenIf you are using the Windows Packaging Project, you can also define a custom protocol using the default manifest editor by double clicking the package.appxmanifest file, navigating to the Declarations tab and selecting Protocol under Available Declarations:

Protokoll Deklaration in "Package. appxmanifest"

Schreiben von Code zum Behandeln von Parametern, wenn Ihre APP nach der Installation gestartet wirdWrite code to handle parameters when your app is launched after installation

Sie müssen Code in Ihrer Anwendung implementieren, um die Installationsparameter zu verarbeiten, die beim Start an Ihre APP übermittelt werden.You will need to implement code in your application to handle the installation parameters that will be passed to your app when it is launched. Der folgende Beispielcode verwendet die appInstance. getactivatedeventargs -Methode, um den Aktivierungstyp zu bestimmen, der zum Instanziieren einer App verwendet wird. (Sie können auch die Parameter mit einer anderen Methode verarbeiten.)The example code below uses the AppInstance.GetActivatedEventArgs method to determine the type of activation used to instantiate an app (you can also handle the parameters using a different method). Wenn Ihre APP mit Abfrage Erfassungs Parametern aus einem Installations-URI gestartet bzw. aktiviert wird (siehe Definition im nächsten Abschnitt), ist der Aktivierungstyp eine Protokoll Aktivierung, die durch Ihr benutzerdefiniertes Protokoll definiert ist, das in Ihrem appxmanifest.xml und im Download-/installationsuri deklariert ist.When your app is launched/activated with query sting parameters from an install uri (see defintion in the next section), the activation type will be a protocol activation as defined by your custom protocol declared in your appxmanifest.xml and download/install uri. Die Argumente für das Aktivierungs Ereignis weisen den Typ protocolactivatedeventargs auf. Dies wird im folgenden Code verwendet:The activation event args will be of type ProtocolActivatedEventArgs and that is what the code below uses:


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());

        }
            
}

Hinzufügen des benutzerdefinierten Aktivierungs Protokolls und der Parameter zum Installations-URIAdd your custom activation protocol and parameters to the installation uri

Nachdem Ihre APP für die Handhabung der Installationsparameter eingerichtet wurde, können Sie den App-Download/-Installations-URI so anpassen, dass Sie eindeutig definierte Parameter enthalten, die beim Start an Ihre APP weitergegeben werden, nachdem ein Benutzer auf den URI geklickt hat.Once your app is set up to handle your installation parameters, you can customise the app download/install uri to contain uniquely defined parameters that will be passed on to your app at launch, after a user clicks on the uri. Der URI muss Folgendes enthalten:The uri must contain:

  1. Das MS-appinstaller -Protokoll, das den APP-Installer aufruft.The ms-appinstaller protocol that invokes App Installer.
  2. Der eindeutige ActivationUri des Parameters, der auf das benutzerdefinierte Protokoll Ihrer APP zeigt, und auf die Installationsparameter, die Sie beim Start an Ihre APP übergeben möchten.The unique parameter activationUri that points to your app's custom protocol and the install parameters you want passed to your app when it is launched.
  3. Das benutzerdefinierte Protokoll Ihrer APP und der-Parameter und dessen Wert.Your app's custom protocol and the the parameter and its value.

In den folgenden Beispiel-URIs haben Sie ein benutzerdefiniertes Protokoll " My-Custom-Protocol" definiert, den Parameter " My-Parameter " und den Wert " My-param-value".In the example uris below, I have defined a custom protocol my-custom-protocol, a parameter my-parameter and given it the value my-param-value. Wenn die APP gestartet wird, nachdem ein Benutzer auf den URI geklickt hat, empfängt Sie den Teil der Abfrage Zeichenfolge des URIs nach ActivationUri. in diesem Fall ist dies My-Custom-Protocol:? My-Parameter = My-param-value.When the app is launched after a user clicks on the uri, it will receive the query string portion of the uri after activationUri, in this case that will be 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