Ü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, an Ihre App übergeben werden, wenn sie gestartet wird, nachdem ein Benutzer auf den Download-/Installations-URI geklickt hat. Dies funktioniert, unabhängig davon, ob ein Benutzer die App zum ersten Mal installiert hat oder ob die App zuvor installiert wurde. In diesem Artikel wird gezeigt, wie Sie Ihre gepackte MSIX-Anwendung und ihren Download-/Installations-URI konfigurieren, um diese Funktionalität zu nutzen. Dies kann nützlich sein, wenn Sie unterschiedliche Installationen basierend auf der Quelle, downloadtyp usw. nachverfolgen oder verarbeiten möchten und für Webdownloads funktionieren, und alle anderen Fälle, in denen ein Benutzer auf den URI klickt, z. B. aus einer E-Mail-Kampagne. Weitere Details 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 definierten benutzerdefinierten Protokoll gestartet werden kann. Wenn dieses Protokoll aufgerufen wird, wird Ihre Anwendung gestartet, und alle prameter, die im URI angegeben sind, werden an die Aktivierungsereignisargumente Ihrer App übergeben, wenn sie gestartet wird. Sie können das Protokoll registrieren, indem Sie einen Protokollerweiterungseintrag im Knoten "Anwendungserweiterungen" in der appxmanifest.xml Datei 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 Project verwenden, können Sie auch ein benutzerdefiniertes Protokoll mithilfe des Standardmanifest-Editors definieren, indem Sie auf die Datei "package.appxmanifest" doppelklicken, 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, wenn Ihre App nach der Installation gestartet wird

Sie müssen Code in Ihrer Anwendung implementieren, um die Installationsparameter zu behandeln, die beim Starten an Ihre App übergeben werden. Der folgende Beispielcode verwendet die AppInstance.GetActivatedEventArgs-Methode , um den Typ der Aktivierung zu bestimmen, der zum Instanziieren einer App verwendet wird (Sie können auch die Parameter mithilfe einer anderen Methode behandeln). Wenn Ihre App mit Abfragestufungsparametern aus einem Installations-URI gestartet/aktiviert wird (siehe Defintion im nächsten Abschnitt), ist der Aktivierungstyp eine Protokollaktivierung, wie durch das in Ihrem appxmanifest.xml deklarierte benutzerdefinierte Protokoll und download/install URI definiert. Die Aktivierungsereignisargumente sind vom Typ "ProtocolActivatedEventArgs" und das ist 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 Behandlung Ihrer Installationsparameter eingerichtet ist, können Sie den App-Download-/Installations-URI anpassen, um eindeutig definierte Parameter zu enthalten, 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 Parameteraktivierungsuri , 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.

Im 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 aktivierungUri, in diesem Fall ist 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