跳到主要内容

LBS 模块的回调(LBSIPInfoResultObserver)

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

注册 Player Network SDK LBS 模块的回调,游戏需要注册回调函数进行处理;更多关于回调数据结构,请参见 LBSIPInfoResult

注意

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

警告
  • 由于数据源的因素 IP 和地区之间的转换不是 100% 的准确。
  • 由于网络抖动或其他因素,该 API 可能无法返回结果。不建议在关键的游戏逻辑中使用它。用户还必须考虑失败情况下的默认适应策略。
  • IP 和地区的转换关系默认会随着 IP 库中数据的更新而发生变化,如果业务需要固定不变的 IP 和地区的转换关系,可联系 Player Network 助手单独进行配置。

函数定义

// 增加 INTLLBSIPInfoResult 回调,用于处理 LBS 回调
public static void AddLBSIPInfoResultObserver(OnINTLResultHandler<INTLLBSIPInfoResult> callback);

// 移除 INTLLBSIPInfoResult 回调
public static void RemoveLBSIPInfoResultObserver(OnINTLResultHandler<INTLLBSIPInfoResult> callback);

代码示例

// 增加回调
public void AddIPInfoObserver()
{
INTLAPI.AddLBSIPInfoResultObserver(OnIPInfoResultEvent);
}

// 移除回调
public void RemoveIPInfoObserver()
{
INTLAPI.RemoveLBSIPInfoResultObserver(OnIPInfoResultEvent);
}

// 处理回调数据
private void OnIPInfoResultEvent(INTLLBSIPInfoResult ipInfoRet)
{
Debug.Log($"MethodID: {ret.MethodId}");

string methodTag = "";
if (ipInfoRet.MethodId == (int)INTLMethodID.INTL_LBS_REQUEST_IPINFO)
{
methodTag = "RequestIPInfo";
}
ShowLogInNewLine(methodTag + Tools.Instance.GetRetString(ipInfoRet));
}