LBS 模块的回调(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));
}