LBS 模块的回调(LBSIPInfoResultObserver)
注册 Player Network SDK LBS 模块的回调,游戏需要注册回调函数进行处理。更多关于回调数据结构,请参见 LBSIPInfoResult。
注意
强烈建议游戏在应用启动函数中进行注册。
警告
- 由于数据源的因素 IP 和地区之间的转换不是 100% 的准确。
- 由于网络抖动或其他因素,该 API 可能无法返回结果。不建议在关键的游戏逻辑中使用它。用户还必须考虑失败情况下的默认适应策略。
- IP 和地区的转换关系默认会随着 IP 库中数据的更新而发生变化,如果业务需要固定不变的 IP 和地区的转换关系,可联系 Player Network 助手单独进行配置。
函数定义
C++ 事件处理法(V1.15 以上)
//配置回调
void SetLBSIPInfoResultObserver(FINTLLBSIPInfoEvent& callback);
//获取回调
FINTLLBSIPInfoEvent& GetLBSIPInfoResultObserver();
Unreal Engine 事件处理法
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "INTLSDKObserver")
void OnIPInfoResult(FINTLLBSIPInfoResult ret);
virtual void OnIPInfoResult_Implementation(FINTLLBSIPInfoResult ret) {};
代码示例
C++ 事件处理法(V1.15 以上)
//配置回调
FINTLLBSIPInfoEvent lBSIPInfoEvents;
lBSIPInfoEvents.AddUObject(this, &OnIPInfoResult_Implementation);
UINTLSDKAPI::SetLBSIPInfoResultObserver(lBSIPInfoEvents);
//清除回调
UINTLSDKAPI::GetLBSIPInfoResultObserver().Clear();
void OnIPInfoResult_Implementation(FINTLLBSIPInfoResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}
Unreal Engine 事件处理法
void OnIPInfoResult_Implementation(FINTLLBSIPInfoResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}