必要條件
若要在 Windows PC 上接收遊戲邀請通知,請安裝 XBOX Game Bar。XBOX Game Bar 應用程式預設會安裝在 Windows 10 OS 版本 1903 或更新版本上。選取 Windows 鍵+G 以啟動 XBOX Game Bar 應用程式,確認其已正確安裝。如果您的 Windows PC 上未安裝 XBOX Game Bar,您可以從 Microsoft Store 安裝它。
註冊多人遊戲通訊協定
註冊多人遊戲通訊協定會告知系統在使用者接受多人遊戲邀請時如何啟動您的遊戲。若要註冊多人遊戲通訊協定,您需要將MultiplayerProtocol 元素新增至您的 MicrosoftGame.config 檔案,如下列程式碼所示。
Executable 屬性指定由哪個可執行檔處理多人遊戲通訊協定,如下列程式碼所示。
註冊多人遊戲邀請回呼
XGameInviteRegisterForEvent 和 XGameInviteUnregisterForEvent API 現在已淘汰。請改用 XGameActivationRegisterForEvent 和 XGameActivationUnregisterForEvent。如需移轉指引,請參閱 XGameActivation。平面 C
OnActivation() 處理常式方法的 inviteUri。然後,遊戲必須等待 RegisterAppStateChangeNotification 通知遊戲已完全繼續,才能使用 inviteUri 中提供的詳細資料對工作階段進行操作。
如需 RegisterAppStateChangeNotification 的詳細資訊,請參閱 XBOX 遊戲生命週期 (NDA 主題)。
從 XGameActivationCallback 剖析 inviteUri
當您的遊戲收到啟用類型為AcceptedGameInvite 的 XGameActivationCallback 事件時,您可以從 XGameActivationInfo 結構存取 inviteUri 字串。inviteUri 會是下列其中一種格式。
接受遊戲邀請時
當使用者接受遊戲邀請時,遊戲會收到包含inviteUri 的遊戲邀請回呼,如下列程式碼所示。
inviteHandleAccept表示回呼是因為使用者接受了遊戲邀請而起始的。handle是您用來加入多人遊戲工作階段的邀請控制代碼。invitedXuid是受邀加入多人遊戲工作階段之 XBOX 服務使用者的識別碼。senderXuid是傳送遊戲邀請之 XBOX 服務使用者的識別碼。context是傳送者可能包含的額外 (選擇性) 內容。
加入進行中的遊戲工作階段時
當使用者嘗試加入多人遊戲工作階段時,遊戲會收到包含inviteUri 的邀請回呼,如下列程式碼所示。
activityHandleJoin表示回呼是因為使用者接受了遊戲邀請而起始的。handle是您用來加入多人遊戲工作階段的活動控制代碼。joinerXuid是嘗試加入多人遊戲工作階段之 XBOX 服務使用者的識別碼。joineeXuid是目前位於多人遊戲工作階段中之 XBOX 服務使用者的識別碼。
使用 handleId 加入多人遊戲工作階段
使用多人遊戲管理員
如果您使用的是多人遊戲管理員,可以使用 XblMultiplayerManagerJoinLobby API 並傳入從inviteUri 擷取的 handleId,讓使用者加入多人遊戲工作階段。您也可以為 invitedXuid 使用 xblUserHandle,如下列程式碼所示。
平面 C
直接使用多人遊戲 API
如果您使用的是多人遊戲 API,請使用下列步驟為您的遊戲設定多人遊戲工作階段和邀請。- 使用 XblMultiplayerGetSessionByHandleAsync API 擷取多人遊戲工作階段文件,並傳入
handleId。 - 使用 XblMultiplayerSessionJoin API 將本機使用者加入多人遊戲工作階段文件。
- 使用 XblMultiplayerWriteSessionByHandleAsync API 將多人遊戲工作階段文件寫入服務,以認可此變更。
