XGameUiShowWebAuthenticationWithOptionsAsync
启动异步身份验证请求,显示一个可能全屏的 Web UI,允许用户委托访问外部网站和服务,而无需直接向正在运行的游戏提供其凭据。语法
参数
async _In_类型:XAsyncBlock* 指向传递给 XAsyncRun 的 XAsyncBlock 的指针。 requestingUser _In_
类型:XUserHandle 请求进行 Web 身份验证的用户的句柄。 requestUri _In_z_
类型:char* 向用户呈现的 Web 视图的初始 URI(可能包含用于用户向服务进行身份验证的字段)。请求 URI 必须是安全的 HTTPS 地址。 completionUri _In_z_
类型:char* 表示 Web 身份验证过程成功完成的 URI。当 Web 视图导航到与 completionUri 匹配的 uri 时,Web 视图将关闭,控制权返回给调用游戏。 options &nbps; _In_ 类型:XGameUiWebAuthenticationOptions 用于指示是否尝试全屏显示 UI 的标志。在 PC 上,此标志会被忽略。PC 上不支持全屏选项。
返回值
类型:HRESULT 异步调用的 HRESULT 成功或错误代码。 若要获取结果,请在 AsyncBlock 回调中或 AsyncBlock 完成后调用 xgameuishowwebauthenticationresultsize 和 xgameuishowwebauthenticationresult。备注
当此异步任务运行时,系统会向用户呈现一个 Web 视图(覆盖在当前应用程序之上),用户可以与之交互,或按“返回”将其关闭。这样一来,用户可以使用 OAuth 向外部网站和服务授予访问权限。这可用于诸如让游戏进行身份验证以在社交媒体上分享游戏亮点、向外部提供程序请求用户数据等场景。 身份验证请求的结果存储在 XGameUiWebAuthenticationResultData 对象中,该对象由 XGameUiShowWebAuthenticationResult 方法返回。 如果 Web 视图因导航到 completionUri 而关闭,则结果数据结构的 responseStatus 字段将为S_OK。
如果用户取消或以其他方式手动关闭 Web 视图,则结果数据结构的 responseStatus 字段将为 E_CANCELLED。
示例
以下代码示例演示了如何使用 Facebook 执行 OAuth。为了使代码简洁,此示例未包含内存分配错误处理。要求
标头: XGameUI.h 库: xgameruntime.lib 支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机请参阅
XGameUI XGameUiShowWebAuthenticationAsyncXGameUiShowWebAuthenticationResultSize
XGameUiShowWebAuthenticationResult
XGameUiWebAuthenticationResultData
异步编程模型
