跳到主要内容

登录模块的回调(AuthResultObserver)

如果您使用的是 Unreal Engine,请参见 Unreal Engine SDK 的 AuthResultObserver

注册 Player Network SDK 登录模块的回调,游戏需要对回调函数进行处理。更多关于回调数据结构,请参见 AuthResult

注意

强烈建议游戏在应用启动函数中进行注册。

函数定义

// 添加 INTLAuthResult 回调,用于处理 Login, AutoLogin, QueryUserInfo,
// ResetGuest, Bind, QueryCanBind 的回调
public static void AddAuthResultObserver(OnINTLResultHandler<INTLAuthResult> callback);

// 移除 INTLAuthResult 回调
public static void RemoveAuthResultObserver(OnINTLResultHandler<INTLAuthResult> callback);

代码示例

// 增加回调
public void AddAuthObserver()
{
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
}

// 移除回调
public void RemoveAuthObserver()
{
INTLAPI.RemoveAuthResultObserver(OnAuthResultEvent);
}

// 处理 AuthResultObserver 的回调
private void OnAuthResultEvent(INTLAuthResult AuthResult)
{
switch (AuthResult.MethodId)
{
// LI PASS 第三方/LI登录进入游戏
case (int)INTLMethodID.LI_LOGIN_ENTER_GAME:
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI PASS Login success");
} else {
Debug.Log("LI PASS Login failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
LevelInfinite.OpenLoginPanel();
}
break;
// LI PASS 自动登录进入游戏
case (int)INTLMethodID.LI_AUTOLOGIN_ENTER_GAME:
if(AuthResult.RetCode == (int)ERROR_CODE.SUCCESS) {
Debug.Log("LI PASS Autologin success");
} else {
Debug.Log("LI PASS Autologin failed, ret_code = " + AuthResult.RetCode + ", ret_msg = " + AuthResult.RetMsg);
LevelInfinite.OpenLoginPanel();
}
break;
default:
break;
}
}