Übergeben von Installationsparametern an Ihre APP über den APP-Installer

Wenn Sie Ihre App mit MSIX verteilen, können Sie Ihre App so konfigurieren, dass abfragezeichenfolgen-Parameter, die Sie im Download-/Installations-URI definieren, beim Start an Ihre App übergeben werden, nachdem ein Benutzer auf den Download-/Installations-URI geklickt hat. Dies funktioniert unabhängig davon, ob ein Benutzer die App zum ersten Mal installiert oder ob die App zuvor installiert wurde. In diesem Artikel erfahren Sie, wie Sie Ihre MSIX-gepackte Anwendung und ihren Download-/Installations-URI konfigurieren, um diese Funktionalität nutzen zu können. Dies kann nützlich sein, wenn Sie verschiedene Installationen basierend auf der Quelle, dem Downloadtyp usw. nachverfolgen oder verarbeiten möchten und für Webdownloads und alle anderen Fälle funktionieren, in denen ein Benutzer auf den URI klickt, z. B. aus einer E-Mail-Kampagne. Weitere Informationen finden Sie in diesem Blogbeitrag.

Konfigurieren Ihrer Anwendung für die Protokollaktivierung

Zunächst müssen Sie Ihre App registrieren, damit sie mit einem von Ihnen definierten benutzerdefinierten Protokoll gestartet wird. Wenn dieses Protokoll aufgerufen wird, wird Ihre Anwendung gestartet, und alle im URI angegebenen Prameter werden beim Start an die Aktivierungsereignisargumente Ihrer App übergeben. Sie können das Protokoll registrieren, indem Sie einen Protokollerweiterungseintrag im Knoten Anwendungserweiterungen in der appxmanifest.xml-Datei Ihrer MSIX-Datei hinzufügen:

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

Wenn Sie die Windows Packaging Projectverwenden, können Sie auch mithilfe des Standardmanifest-Editors ein benutzerdefiniertes Protokoll definieren, indem Sie auf die Datei package.appxmanifest doppelklicken, zur Registerkarte Deklarationen navigieren und protokollieren unter Verfügbare Deklarationen auswählen:

Protokolldeklaration in package.appxmanifest

Schreiben von Code zum Behandeln von Parametern, wenn Ihre App nach der Installation gestartet wird

Sie müssen Code in Ihrer Anwendung implementieren, um die Installationsparameter zu verarbeiten, die beim Start an Ihre App übergeben werden. Im folgenden Beispielcode wird die AppInstance.GetActivatedEventArgs-Methode verwendet, um den Aktivierungstyp zu bestimmen, der zum Instanziieren einer App verwendet wird (Sie können die Parameter auch mit einer anderen Methode behandeln). Wenn Ihre App mit Abfragestingparametern aus einem Installations-URI gestartet/aktiviert wird (siehe Definition im nächsten Abschnitt), ist der Aktivierungstyp eine Protokollaktivierung, wie von Ihrem benutzerdefinierten Protokoll definiert, das in Ihrer appxmanifest.xml deklariert ist, und der Download-/Installations-URI. Die Aktivierungsereignis-Args haben den Typ ProtocolActivatedEventArgs, und dies wird im folgenden Code verwendet:


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 Ihres benutzerdefinierten Aktivierungsprotokolls und der Parameter zum Installations-URI

Nachdem Ihre App für die Verarbeitung Ihrer Installationsparameter eingerichtet wurde, können Sie den App-Download-/Installations-URI so einstellen, dass er eindeutig definierte Parameter enthält, die beim Start an Ihre App übergeben werden, nachdem ein Benutzer auf den URI geklickt hat. Der URI muss Folgendes enthalten:

  1. Das ms-appinstaller-Protokoll, das App-Installer aufruft.
  2. Der eindeutige Parameter activationUri, der auf das benutzerdefinierte Protokoll Ihrer App und die Installationsparameter verweist, die Beim Start an Ihre App übergeben werden sollen.
  3. Das benutzerdefinierte Protokoll Ihrer App sowie der Parameter und sein Wert.

In den folgenden Beispiel-URIs habe ich ein benutzerdefiniertes Protokoll my-custom-protocol, einen Parameter my-parameter definiert und ihm den Wert my-param-value gegeben. Wenn die App gestartet wird, nachdem ein Benutzer auf den URI geklickt hat, empfängt sie den Teil der Abfragezeichenfolge des URI nach activationUri. In diesem Fall ist dies 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