다음을 통해 공유


프로토콜 활성화

게임이 실행되고 있지 않은 경우 게임을 시작하는 데 사용할 수 있는 사용자 지정 URI 프로토콜을 등록할 수 있으며, 게임이 이미 실행 중인 경우 게임을 포그라운드로 가져올 수 있습니다.

프로토콜 등록

사용자 지정 프로토콜을 등록하려면 게임에서 먼저 MicrosoftGame.Config 수정해야 합니다. 게임은 아래 예제와 같이 ProtocolList>에 여러 프로토콜을 <추가하여 등록할 수 있습니다.

<Game configVersion="1">
   <Identity Name="ExampleGame" Publisher="CN=NoPub" Version="1.6.0.0"/>
   <ProtocolList>
      <Protocol Name="awesome-custom-debug-protocol"
                Executable="SubDirectory\Test\MyExecutable_profile.exe"/>
      <Protocol Name="awesome-custom-protocol2"
                Executable="MyExecutable.exe"/>

   </ProtocolList>
   <!-- Lots of stuff excluded -->
</Game>

위의 예제에서는 두 개의 사용자 지정 프로토콜을 등록합니다. 그런 다음, 다음과 같은 URI를 사용하여 게임을 시작할 수 있습니다.

awesome-custom-debug-protocol://Parameter1=xyz&Parameter2=abc

그런 다음 게임에서 XGameProtocolRegisterForActivation을 사용하여 프로토콜을 활성화할 때 호출되는 XGameProtocolActivationCallback콜백에 등록할 수 있습니다. 그런 다음 게임에서 URI를 구문 분석하여 게임에 전달된 추가 매개 변수를 읽을 수 있습니다.

참고 항목

게임에서 GetCommandLine 을 사용하여 동일한 매개 변수를 가져올 수 있는 것은 사실이지만, 이는 게임의 초기 출시에만 적용됩니다. 게임이 이미 실행 중이면 게임에 전달된 명령줄 인수가 업데이트되지 않습니다. 사용자 지정 프로토콜 활성화를 활용하려는 모든 게임은 XGameProtocolRegisterForActivation을 사용하여 콜백을 등록하고 해당 콜백을 사용하여 활성화에 응답해야 합니다.

참고 항목

타이틀 ID가 있는 모든 게임에는 항상 ms-xbl-XXXXXXXX:// 형식으로 등록된 기본 프로토콜이 있습니다. 여기서 XXXXXXXX는 선행 "0x"가 없는 타이틀 ID의 16진수 형식입니다. 이 프로토콜은 게임 초대를 위해 예약되어 있습니다. 이 프로토콜을 사용하여 활성화된 게임은 XGameProtocolActivationCallback이 아닌 XGameInviteEventCallback을 트리거합니다.

참고 항목

XGameProtocolRegisterForActivationXGameProtocolUnregisterForEventXGameProtocolActivationCallback