다음을 통해 공유


앱 설치 관리자를 통해 앱에 설치 매개 변수 전달

MSIX를 사용하여 앱을 배포할 때 사용자가 다운로드/설치 URI를 클릭한 후 다운로드/설치 URI에서 정의한 쿼리 문자열 매개 변수가 실행될 때 앱에 전달되도록 앱을 구성할 수 있습니다. 사용자가 앱을 처음 설치한 경우 또는 앱이 이전에 설치되었는지 여부에 관계없이 작동합니다. 이 문서에서는 이 기능을 활용하도록 패키지된 애플리케이션 및 다운로드/설치 URI를 구성하는 방법을 보여 줍니다. 이는 원본, 다운로드 유형 등을 기준으로 다른 설치를 추적하거나 처리하려는 경우 유용할 수 있으며, 웹 다운로드 및 사용자가 전자 메일 캠페인에서 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의 쿼리 스팅 매개 변수를 사용하여 시작/활성화되면(다음 섹션의 정의 참조) 활성화 유형은 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-매개 변수를 정의하고 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