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

Wenn Sie Ihre App mithilfe von MSIX verteilen, können Sie Ihre App so konfigurieren, dass Abfragezeichenfolgenparameter, die Sie im Download-/Installations-URI definieren, beim Starten 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 bereits zuvor installiert wurde. In diesem Artikel wird erläutert, wie Sie Ihre verpackte 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. Es funktioniert für Webdownloads und alle anderen Fälle, in denen ein Benutzer auf den URI klickt, z. B. aus einer E-Mail-Kampagne. Weitere Informationen finden Sie in diesem Blogbeitrag.

Konfigurieren Der Anwendung für die Protokollaktivierung

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

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

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

Protocol declaration in package.appxmanifest

Schreiben von Code zum Behandeln von Parametern beim Starten der App nach der Installation

Sie müssen Code in Ihrer Anwendung implementieren, um die Installationsparameter zu verarbeiten, die beim Starten an Ihre App übergeben werden. Der folgende Beispielcode verwendet die AppInstance.GetActivatedEventArgs-Methode , um den Typ der Aktivierung zu bestimmen, mit der eine App instanziiert wird (Sie können die Parameter auch mit einer anderen Methode behandeln). Wenn Ihre App mit Abfrage-Sting-Parametern aus einem Installations-URI gestartet/aktiviert wird (siehe Definition im nächsten Abschnitt), ist der Aktivierungstyp eine Protokollaktivierung, die von Ihrem benutzerdefinierten Protokoll bestimmt wird, das in Ihrem appxmanifest.xml deklariert ist, und laden Sie URI herunter und installieren sie es. Die Aktivierungsereignisargumente sind vom Typ ProtocolActivatedEventArgs und das verwendet der folgende Code:


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

Sobald Ihre App für die Verarbeitung der Installationsparameter eingerichtet ist, können Sie den App-Download-/Installations-URI so anpassen, dass er eindeutig definierte Parameter enthält, die beim Start an Ihre App übergeben werden, nachdem ein Benutzer auf den URI klickt. Der URI muss folgendes enthalten:

  1. Das ms-appinstaller-Protokoll, das den App-Installer aufruft.
  2. Der einzigartige Parameteraktivierungs-URI, der auf das benutzerdefinierte Protokoll Ihrer App verweist, und die Installationsparameter, die Sie beim Starten an Ihre App übergeben möchten.
  3. Das benutzerdefinierte Protokoll Ihrer App und der Parameter und dessen Wert.

In den folgenden Beispiel-URI 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 klickt, empfängt sie den Abfragezeichenfolgenteil 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