跳到主要内容

初始化(InitLIP)

AndroidiOSWindows
支持于:LI PASS V1.16
如果您使用的是 Unity 引擎,请参见 Unity SDK 的 InitLIP
注意

建议在游戏启动时调用 InitLIP 初始化 LI PASS。

函数定义

UFUNCTION(BlueprintCallable, Category = "LevelInfinite")
static int InitLIP(UGameInstance* instance, const FString& appVersion, const FString& langType = "en");

初始化 LI PASS 分别为下面的几个步骤:

  1. 获取热更版本信息
  2. 下载新版资源
  3. 加载资源
  4. 加载完成后,触发 LI PASS 事件回调(LIEventObserver)GN_READY 事件
注意

GN_READY 事件在网络异常情况下的回调超时反馈时间是 60s*3。游戏可在初始化后直接调用 自动登录(AutoLogin)打开登录面板(OpenLoginPanel)登录并拉起 LI PASS 绑定页面(LoginChannelWithLIPass) 给予玩家及时的响应,无需等待GN_READY 事件。

获取热更版本信息

请求信息

可以搜索 gnconfig 定位到请求 URL:

2023-06-08 09:54:20.948 25151-26800 INTL                    com.intlgame.demo                    I  [INTL][1806][A.I.A][2023-06-08 09:54:20.948][25151, 26800, 539607522480][ (intl_http_manager.cpp:328) OnHTTPClientCallBack] : 
[http] request url : https://test-vas.intlgame.com/v2/gnconfig/acquire_config?area_id=0&channelid=131&gameid=11&openid=FFFFFFFFFFFFFF&os=1&sdk_version=1.3.00&seq=11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189260-717&source=37&token=&ts=1686189260&sig=6dc2bb8968cfe28fab5138e2342f327d ,

响应信息

警告

如 LI PASS 表现未符合预期,请检查热更版本信息,确认是否运行正确的资源。

如果匹配到规则,可以搜索 rule_id 定位到响应信息:

response_body : {
"ret":0,
"msg":"",
"rule_id":"1063",
"resource_list":"[{\"dependency\":[],\"file_list\":[{\"md5\":\"968F1A3E16AB6041F504E29DEFB348DD\",\"size\":1747648,\"url\":\"https://sg-gamenative001-1300342648.file.myqcloud.com/gamenative-files/11/LI_107_UE_Android/1686187421509627102/LevelInfinite_Android.pak\"}],\"is_public\":0,\"name\":\"LI_107_UE_Android\"}]",
"sdk_enable":1,
"sdk_debug_enable":1,
"report_log_enable":1,
"log_level":1,
"inner_seq":"ac097e19-772b-4069-948d-78e21821ac15",
"seq":"11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189260-717"
}

如果未匹配到规则:

response_body : {
"ret":23111202,
"msg":"no matched config error( [match logic]no match )",
"rule_id":"",
"resource_list":"",
"sdk_enable":0,
"sdk_debug_enable":0,
"report_log_enable":0,
"log_level":0,
"inner_seq":"ca3fa94a-0be7-4325-aa90-a5bc36d7c502",
"seq":"11-7a08fc1d06ea8e62b6ea3e626ed61c8f2398c981bc6d8d0dfa30681a3d05616e-1686189018-705"
}

入参说明

参数类型说明
instanceUGameInstanceUE GameInstance
appVersionstring游戏版本号,不能带空格
langTypestringLI PASS UI 显示语言

代码示例

FString Version = FApp::GetBuildVersion();
ULevelInfiniteAPI::InitLIP(GetGameInstance<UGameInstance>(), Version, TEXT("en"));