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

使用 MSIX 散發應用程式時,您可以設定應用程式,讓您在下載/安裝 URI 中定義的查詢字串參數會在應用程式啟動時傳遞至您的應用程式,當使用者按一下下載/安裝 URI 之後。 這適用于使用者第一次安裝應用程式,還是先前安裝應用程式。 本文說明如何設定已封裝的應用程式及其下載/安裝 URI,以利用這項功能。 如果您想要根據來源、下載類型等來追蹤或處理不同的安裝,而且適用于 Web 下載,以及使用者按一下 URI 的任何其他案例,例如,從電子郵件行銷活動,這非常有用。 如需詳細資訊,請參閱此 部落格文章

設定您的應用程式以進行通訊協定啟用

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

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

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

Protocol declaration in package.appxmanifest

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

您必須在應用程式中實作程式碼,以處理啟動應用程式時傳遞至應用程式的安裝參數。 下列範例程式碼會使用 AppInstance.GetActivatedEventArgs 方法來判斷用來具現化應用程式之啟用類型(您也可以使用不同的方法來處理參數)。 當您的應用程式啟動/啟動時,使用來自安裝 URI 的查詢 sting 參數啟動/啟動時(請參閱下一節中的定義),啟用類型將會是通訊協定啟用,如您在 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-custom-protocol 、參數 my-parameter ,並將值 指定為 my-param-value 。 當使用者按一下 uri 之後啟動應用程式時,它會在 activationUri 之後 收到 URI 的查詢字串部分,在此情況下會是 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