透過應用程式安裝程式將安裝參數傳遞至您的應用程式

使用 MSIX 散發您的應用程式時,您可以設定您的應用程式,讓您在下載/安裝 uri 中定義的查詢字串參數,在使用者按一下下載/安裝 uri 之後,傳遞給您的應用程式。 無論使用者是第一次安裝應用程式,或是先前已安裝過應用程式,這都是可行的。 本文說明如何設定您的 MSIX 封裝應用程式及其下載/安裝 uri,以利用這項功能。 如果您想要根據來源、下載類型等來追蹤或處理不同的安裝,這項功能會很有用,而使用者也可以從電子郵件行銷活動中按一下 uri 等任何其他情況。 如需詳細資訊,請參閱這 篇 blog 文章

設定您的應用程式來啟用通訊協定

首先要做的事是註冊您的應用程式,以使用您定義的 自訂通訊協定 來啟動應用程式。 叫用此通訊協定時,您的應用程式會啟動,且 uri 中指定的任何 prameters 會在啟動時傳遞至應用程式的啟用事件引數。 您可以在 MSIX 的 appxmanifest.xml 檔案的 [應用程式延伸模組] 節點中新增通訊協定延伸專案,以註冊通訊協定:

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

如果您使用Windows 封裝 Project,您也可以使用預設的資訊清單編輯器來定義自訂通訊協定,方法是按兩下package.appxmanifest檔案,流覽至 [宣告] 索引標籤,然後選取 [可用的宣告] 下的 [通訊協定]:

Package. package.appxmanifest 中的通訊協定宣告

當您的應用程式在安裝後啟動時,撰寫程式碼來處理參數

您必須在應用程式中執行程式碼,以處理將在啟動時傳遞至應用程式的安裝參數。 下列範例程式碼使用 AppInstance GetActivatedEventArgs 方法來判斷用來具現化應用程式的啟用類型 (您也可以使用不同的方法) 來處理參數。 當您的應用程式使用來自安裝 uri 的查詢字串參數啟動/啟動時 (請參閱下一節中的定義) ,啟用類型會是由您在 appxmanifest.xml 中宣告的自訂通訊協定所定義的通訊協定啟用,以及下載/安裝 uri。 啟用事件引數的類型會是 ProtocolActivatedEventArgs ,而這就是下列程式碼所使用的程式碼:


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

        }
            
}

將自訂啟用通訊協定和參數新增至安裝 uri

當您的應用程式設定為可處理您的安裝參數之後,您就可以在使用者按一下 uri 之後,將應用程式下載/安裝 uri 定義為包含在啟動時傳遞至應用程式的唯一定義參數。 Uri 必須包含:

  1. 叫用應用程式安裝程式的 ms appinstaller 通訊協定。
  2. 唯一的參數 >activationuri ,指向您應用程式的自訂通訊協定,以及您想要在啟動時傳遞至應用程式的安裝參數。
  3. 您應用程式的自訂通訊協定和參數,以及其值。

在下列範例 uri 中,我已定義自訂通訊協定- 自訂通訊協定、參數 my 參數 ,並將其值指定為 my-param 值。 當使用者按一下 uri 之後啟動應用程式時,它會在 >activationuri之後收到 uri 的查詢字串部分,在此案例中,我的 自訂通訊協定:? 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