如何初始化 Hive SDK¶
在游戏中使用 Hive SDK 函数,您必须初始化 Hive SDK。初始化后,服务条款以及在 Hive 控制台注册的更新和通知弹窗会自动显示。
Warning
在初始化 Hive SDK 之前,请不要忘记设置 hive_config.xml 文件。
初始化是如何工作的¶
当 Hive SDK 被初始化时,它执行以下功能:
- Hive SDK 使用一个初始化函数初始化以下项目。
- Hive SDK 不会直接通知应用访问权限。有关更多信息,请查看 [常见问题解答]。
- 显示为相关游戏设置的更新和通知弹出窗口。对于 Google Play 商店,支持 应用内更新。有关注册更新弹出窗口的更多详细信息,请参阅 Hive 控制台指南。
- 检查用户 IP 并按国家/地区显示服务条款。
应用内更新¶
应用内更新 是一种在不终止应用的情况下,按照更新弹窗配置在后台更新应用的功能。应用内更新可以在以下条件下使用。
- 仅支持 Google Play 商店。
- 仅支持 Android 手机、Android 平板和 ChromeOS 设备。
- 支持两种应用文件格式:AAB(Android 应用包)和 APK。然而,不支持 APK 扩展文件(.obb 文件)。
- 对于 AAB,支持最大 200MB,对于 APK,支持最大 150MB 的大小。
Hive 初始化图¶
注册 Hive 认证密钥¶
使用配置类 API,在 Hive 初始化之前,在 Hive 控制台页面上注册 Hive 认证密钥。相应的 API 从 4.15.0 版本或更高版本提供。
API 参考: Unity®
API 参考: C++
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
string hiveCertKey = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAzNzc4OTU2LCJqdGkiOiIxODczMTExMzIwIn0.OxWo4R6UdI0BLP1ckt8RlMFrPAb5H7TNedmLFV1Cawc";
Configuration::setHiveCertificationKey(hiveCertKey);
API 参考: Kotlin
API 参考: Java
API 参考: Swift
API 参考: Objective-C
实现初始化¶
要初始化 Hive SDK,请在 AuthV4 类中实现 setup()
方法。以下数据作为结果提供,因此您可以将数据保存在游戏中,并在需要时加以利用。
- Hive 初始化的结果数据
字段名称 | 描述 | 示例 |
---|---|---|
isAutoSignIn | 是否可用自动登录 | true |
did | did 是在应用安装中创建的应用实例的标识符。用于识别同一应用的应用实例。 | 123456789 |
providerTypeList | 当前应用可用的 IdP 列表 这是一个必要 字段,用于自定义显式登录或组合 IdP 同步状态的信息。 | ProviderType.FACEBOOK ProviderType.HIVE |
以下是实现setup()
方法的示例代码。
API 参考: AuthV4::setup
// 请求 Hive SDK 初始化
AuthV4::setup([=](ResultAPI const & result, bool isAutoSignIn, std::string did, std::vector<ProviderType> const & providerTypeList) {
if (result.isSuccess()) {
// 初始化成功。根据是否启用自动登录处理登录。
} else if (result.needExit()) {
// TODO: 实现应用程序的终止
// Cocos2d-x 引擎用户
// ex) exit(0);
// Unreal 引擎用户
// 示例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
} else {
// 初始化失败 }
});
#include "HiveAuthV4.h"
FHiveAuthV4::Setup(FHiveAuthV4OnSetupDelegate::CreateLambda([this](const FHiveResultAPI& Result,
bool IsAutoSignIn,
const FString& Did,
const TArray<EHiveProviderType>& ProviderTypeArray)
{
if (Result.IsSuccess()) {
// 初始化成功。根据是否启用自动登录处理登录。
} else if (Result.NeedExit()) {
// TODO: 实现应用程序的终止
// Cocos2d-x 引擎的用户
// 例如) exit(0);
// 初始化失败 }
}
}));
API 参考: com.hive.AuthV4.setup
// 请求 Hive SDK 初始化
AuthV4.setup(object: AuthV4.AuthV4SetupListener{
override fun onAuthV4Setup(result: ResultAPI, isAutoSignIn: Boolean, did: String?, providerTypeList: ArrayList<AuthV4.ProviderType>?) { if (result.isSuccess) {
// 初始化成功。根据是否启用自动登录处理登录。
} else if (result.needExit()) {
// TODO: 实现应用程序的终止
// ex) exitProcess(0)
} else {
// 初始化失败 } } })
API 参考: com.hive.AuthV4.setup
// 请求 Hive SDK 初始化
AuthV4.setup(new AuthV4.AuthV4SetupListener() {
@Override
public void onAuthV4Setup(ResultAPI result, boolean isAutoSignIn, String did, ArrayList<AuthV4.ProviderType> providerTypeList) {
if (result.isSuccess()) {
// 初始化成功。根据是否启用自动登录处理登录。
} else if (result.needExit()) {
// TODO: 实现应用程序的终止
// ex) System.exit(0);
} else {
// 初始化失败 } } });
API 参考: HIVEAuthV4:setup
AuthV4Interface.setup { (result, isAutoSignIn, did, providerTypeList) in
if result.isSuccess() {
// the initialization is successfully done. Handle login based on whether the auto-login is enabled or not.
} else if result.needExit() {
// TODO: Implement the termination of the app
// Example) exit(0)
} else {
// initialization failed
}
}
API 参考: HIVEAuthV4:setup
Note
当游戏服务终止时,如果执行setup
方法,将返回一个错误。
服务器维护弹窗¶
对于游戏服务,有必要在游戏客户端更新后阻止该版本,或者在游戏服务器维护期间阻止游戏连接。Hive 提供了按照 Hive 控制台中配置的信息以强制游戏更新,通知/服务器维护的顺序显示弹出窗口的功能。在游戏中,您可以使用 Hive SDK 提供的 UI,或者通过接收来自 Hive 的信息来实现自定义 UI。
强制游戏更新 | 阻止使用特定版本的游戏并提供更新链接 |
---|---|
服务器维护 | 可根据游戏服务器设置维护状态,并建议在服务器维护期间提供官方社区链接 |
通知 | 用于向所有用户公开重要通知或更新信息,而不是强制性地 |
Note
-
更新/维护弹窗是初始化步骤的一部分。服务器维护弹窗应该在服务器选择步骤中显示,无论是自动选择还是手动选择,因此请确保实现维护弹窗以适当显示。
-
如果用户可以在连接到游戏服务器之前等待而不启动游戏,即使您已经设置了服务器维护弹出窗口,此时也不能阻止用户的连接。为此,应该在游戏可以强制终止用户连接的时间显示服务器维护弹出窗口。
如果游戏服务器超过一个,用户选择或设置的游戏服务器信息必须在Hive中设置。如果用户需要选择一个游戏服务器,请实现服务器选择UI,通过在显示各种类型的弹出窗口之前调用Configuration类的setServerId()方法来更改Hive设置。如果您想通过更改Hive设置来更新促销新闻数据,请调用Configuration类的updateServerId()
方法,而不是setServerId()
方法。
在游戏服务器设置完成后,您可以随时显示弹出窗口。如果您在 Hive 控制台上设置弹出窗口,它将在维护期间阻止游戏访问。显示弹出窗口可以使用 Hive SDK 提供的用户界面,或根据 Hive 的信息进行自定义。可以为每个游戏服务器设置服务器维护弹出窗口/更新弹出窗口/通知弹出窗口。
设置弹出内容¶
设置 Hive 控制台上服务器维护弹出/更新弹出/通知弹出的详细信息。有关设置的更多信息,请参见 操作 > 供应指南。
显示弹出窗口¶
Hive SDK 显示维护弹出窗口/更新弹出窗口/通知弹出窗口,或返回弹出消息的信息以自定义弹出窗口。如果 Hive 显示它,弹出窗口将以 Hive 的 UI 风格出现,但如果您想自己处理,您可以以您想要的任何风格显示弹出窗口。根据您是否使用 Hive 弹出窗口,调用 AuthV4 类中的 checkMaintenance() 方法,设置如下所示的参数。
- 使用 Hive 提供的弹出窗口: 将
isShow
参数设置为true
。 -
请求弹出窗口数据以自定义弹出窗口: 将
isShow
参数设置为false
。有关弹出窗口数据的更多信息,请参见下面的 Hive 返回的弹出窗口数据。
以下是一个示例代码,显示一个服务器维护弹出窗口,使用Hive提供的UI。如果用户在服务器维护尚未完成时关闭此弹出窗口,则将触发退出事件并转发到ResultAPI result
。
API 参考: Unity®
#include "HiveAuthV4.h"
// 是否使用 Hive SDK UI
bool bIsShow = true;
FHiveAuthV4::CheckMaintenance(bIsShow, FHiveAuthV4OnMaintenanceInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FHiveAuthV4MaintenanceInfo>& AuthV4MaintenanceInfoArray) {
if (Result.IsSuccess()) {
// 如果没有检查数据
// 如果 isShow 为 false
} else if (Result.NeedExit()) {
// TODO: 实现应用程序终止功能
// 示例) Application.Quit();
}
}));
API 参考: C++
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;
// 是否使用 Hive SDK UI
bool isShow = true;
AuthV4::checkMaintenance(isShow, [=](ResultAPI const & result, vector const & maintenanceInfolist){
if (result.isSuccess()) {
// 如果没有注册的检查数据
// 如果 isShow 为 false
}
else if (reuslt.needExit()) {
// TODO: 实现应用程序终止功能
// Cocos2d-x 引擎用户
// 示例) exit(0);
// Unreal Engine 用户
// 示例) UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit, false);
}
});
API 参考: Kotlin
import com.hive.AuthV4
import com.hive.AuthV4
import com.hive.ResultAPI
// 是否使用 Hive SDK UI
val isShow = true
AuthV4.checkMaintenance(isShow, object : AuthV4.AuthV4MaintenanceListener {
override fun onAuthV4Maintenance(result: ResultAPI, maintenanceInfo: ArrayList<AuthV4.AuthV4MaintenanceInfo>?) {
if (result.isSuccess) {
// 如果没有注册的检查数据
// 如果 isShow 为 false
}
else if (result.needExit()) {
// TODO: 实现应用程序终止功能
// 示例) exitProcess(0)
}
}
})
API 参考: Java
import com.hive.AuthV4;
import com.hive.ResultAPI;
// 是否使用 Hive SDK UI
boolean isShow = true;
AuthV4.INSTANCE.checkMaintenance(isShow, (result, maintenanceInfo) -> {
if (result.isSuccess()) {
// 如果没有注册的检查数据
// 如果 isShow 为 false
}
else if (result.needExit()) {
// TODO: 实现应用程序终止功能
// 示例) System.exit(0);
}
});
API 参考: Swift
API 参考: Objective-C
#import <HIVEService/HIVEService-Swift.h>
// 是否使用 Hive SDK UI
BOOL isShow = YES;
[HIVEAuthV4 checkMaintenance:isShow handler: ^(HIVEResultAPI *result, NSArray<HIVEAuthV4MaintenanceInfo *> *maintenanceInfolist) {
if (result.isSuccess) {
// 如果没有注册的检查数据
// 如果 isShow 为 false
}
else if (result.needExit) {
// TODO: 实现应用程序终止功能
// 示例) exit(0);
}
}];
Note
在检查服务器维护弹出窗口和点击查看详细信息按钮时,iOS 和 Android 会发送一个回调请求,要求游戏方关闭应用程序。当您收到请求终止应用程序的回调时,请终止应用程序。当用户点击关闭 (X) 按钮时,仅关闭弹出窗口,而不会发送请求终止应用程序的回调。
弹出数据由 Hive 返回¶
如果 Hive 通过 checkMaintenance() 方法接收到在 Hive 控制台中设置的弹出信息请求,它将在 AuthV4MaintenanceInfo 对象中返回以下表格中总结的值,如果该值返回为 null,则没有内容弹出。
AuthV4MaintenanceInfo
对象的详细信息
字段名称 | 描述 | 类型 |
---|---|---|
title | 弹出窗口标题 | 字符串 |
message | 弹出窗口内容 | 字符串 |
button | 弹出窗口按钮的标签文本 | 字符串 |
action | 用户点击弹出窗口按钮时的操作类型 + OPEN_URL: 执行外部浏览器传递的URL + EXIT: 结束应用程序 + DONE: 仅关闭维护弹出窗口 | AuthV4MaintenanceActionType 的枚举类型 |
url | 外部浏览器显示的URL。当action 字段的值为OPEN_URL时有效 | 字符串 |
remainingTime | 维护完成前的剩余时间(单位:秒)。时间实时刷新,当变为零时,应用程序终止。 | 整数 |
startDate | 维护的开始日期 | 字符串 |
endDate | 维护的结束日期 | 字符串 |
customerButton | 客户中心的按钮文本(维护弹出窗口发送"") | 字符串 |
customerLink | 客户中心的按钮链接(维护弹出窗口发送"") | 字符串 |
exButtons | 弹出窗口按钮信息(最多传递3个项目) | JSONArray |
exButtons.action | 点击弹出窗口按钮时的操作 + OPEN_URL: 执行外部浏览器传递的URL + EXIT: 结束应用程序 + DONE: 仅关闭维护弹出窗口 | AuthV4MaintenanceActionType 的枚举类型 |
exButtons.button | 弹出窗口按钮的标签文本 | 字符串 |
exButtons.url | 传递给外部浏览器的URL。 action 仅在字段值为OPEN_URL时可用 | 字符串 |
Hive 网页视图¶
服务条款¶
在初始化时,Hive SDK 会根据用户访问 IP 和游戏开发公司自动确定的国家,提供适当的服务条款(“条款”)。即便如此,游戏应向所有用户提供条款和隐私政策的链接,无论是否同意条款和隐私政策。如果您使用 Hive 提供的链接,则根据 Hive 控制台上的设置,自动选择适当的条款和政策向用户展示。条款和政策链接的指示规定因游戏开发公司而异。
要在点击按钮或链接时显示服务条款,请调用**AuthV4**类的showTerms()
方法。以下是示例代码。
删除条款和条件的协议历史¶
一旦游戏用户在第一次运行游戏时同意条款和条件,该同意记录将保留在设备上。下面的 resetAgreement
方法会删除此历史记录。
Note
从 Hive SDK 4.22.0 开始,当游戏用户删除账户后再次运行游戏时,会出现一个问题,即由于同意条款和条件的信息仍与已删除的账户关联,因此条款和条件协议弹出窗口不会出现。如果您希望在删除账户后重置 Hive SDK 时重新显示条款和条件协议弹出窗口,您必须调用 resetAgreement
来删除之前保存的条款和条件协议信息。之后,调用 AuthV4.setup()
来初始化 Hive SDK。
Hive 个人资料¶
要显示 个人资料屏幕,请调用 showProfile()
方法,属于 AuthV4 类。当个人资料屏幕显示时,用户可以查看和更改他们的个人资料图片和昵称。
以下是显示个人资料的示例代码。
API 参考: AuthV4.showProfile
API 参考: AuthV4::showProfile
API 参考: AuthV4.showProfile
API 参考: AuthV4.INSTANCE.showProfile
API 参考: AuthV4Interface.showProfile
API 参考: [HIVEAuthV4 showProfile]
如果您提供会员 IdP,Hive 会员在 Hive 个人资料屏幕的 Hive 帐户设置中提供密码更改和会员退出功能,因此您**必须**实现 showProfile()
。
即使您仅提供其他身份提供者而不提供 Hive 会员身份提供者,显示个人资料屏幕也可以让您提供安全功能,例如阻止外国登录、注销所有设备以及检查登录历史。因此,建议实现 showProfile()
来显示个人资料屏幕。如果与返回个人资料图片和昵称的身份提供者(如 Facebook)集成,则该身份提供者提供的图片和昵称将自动设置为个人资料屏幕。
查询¶
作为Hive平台用户的客户服务系统,它为每个游戏提供常见问题解答和咨询。此功能可在游戏、Hive网站以及Hive移动网页上使用。通过一个按钮暴露CS代码(PlayerID)以访问Hive客户服务,帮助用户提出有关游戏的问题。
Note
- Hive 客户服务同样适用于访客用户。
- 不同的游戏发行公司对如何指示客户服务链接的规定各不相同。
- 除了1:1咨询外,由于政策问题,禁止显示电子邮件或电话号码。
要显示查询页面,请在**AuthV4**类中调用showInquiry()
方法。 以下是显示查询页面的示例代码。
API 参考: AuthV4.showInquiry
API 参考: AuthV4 ::showInquiry
API 参考: AuthV4.showInquiry
API 参考: AuthV4.INSTANCE.showInquiry
API 参考: AuthV4Interface .showInquiry
API 参考: [ HIVEAuthV4 showInquiry]
我的询问快捷方式¶
与 Hive 会员同步的用户可以通过我的询问快捷方式查看他们的询问历史。在 AuthV4 类中调用 showMyInquiry()
方法,让用户轻松查询您的游戏并解决问题。然而,如果用户通过 Hive 移动应用或网站进行了询问,即使在上面指定了 Hive ID 和 CS 代码(PlayerID),这些询问也不会被公开,因为无法确定用户是否已登录 Hive 会员。
Note
- 只有在用户登录 Hive 会员时,您才能实现我的查询快捷方式 API。如果您尝试与其他 IdP 同步调用 API,将返回错误消息。
- 在 Auth v4 中,必须将帐户与 Hive 会员关联才能发放 UID。因此,如果用户以访客身份登录或使用 Hive 会员以外的任何其他 IdP,则无法在 Auth v4 中实现我的查询快捷方式。
以下是暴露我的询问快捷方式的示例代码。
API 参考: hive.AuthV4 .showMyInquiry
API 参考: AuthV4:: showMyInquiry
API 参考: AuthV4.showMyInquiry
API 参考: com.hive .AuthV4.showMyInquiry
API 参考: AuthV4Interface .showMyInquiry
API 参考: HIVEAuthV4:: showMyInquiry
Hive 聊天机器人 CS¶
通过聊天机器人进行咨询¶
要显示聊天机器人页面,请在**AuthV4**类中调用showChatbotInquiry()
方法。
参数 | 类型 | 描述 |
---|---|---|
additionalInfo | 字符串 | 在暴露聊天机器人页面时发送的数据 固定为 "{ \"init_path\":\"hive_sdk_api\" }" ,如果需要额外的值,请联系 Leading Development Team, Com2uS Platform |
以下是通过聊天机器人页面显示查询的示例代码。
API 参考: hive .AuthV4.showChatbotInquiry
#include "HiveAuthV4.h"
// 调用聊天机器人页面快捷 API 时承诺交付的 JSON 格式的字符串数据
TSharedPtr<FJsonObject> AdditionalInfoJson = MakeShareable(new FJsonObject);
AdditionalInfoJson->SetStringField(TEXT("init_path"), TEXT("hive_sdk_api"));
FString StrAdditionalInfo;
TSharedRef<TJsonWriter<>> JsonWriter = TJsonWriterFactory<>::Create(&StrAdditionalInfo);
FJsonSerializer::Serialize(AdditionalInfoJson.ToSharedRef(), JsonWriter);
FHiveAuthV4::ShowChatbotInquiry(StrAdditionalInfo, FHiveAuthV4OnShowInquiryDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
if (Result.IsSuccess()) {
// call successful
}
}));
API 参考: AuthV4 ::showChatbotInquiry
API 参考: AuthV4.showChatbotInquiry
import com.hive.AuthV4
import com.hive.ResultAPI
// 调用聊天机器人页面快捷 API 时承诺以 JSON 格式提供的字符串数据
val additionalInfo = "{ \"init_path\":\"hive_sdk_api\" }"
AuthV4.showChatbotInquiry(additionalInfo, object : AuthV4.AuthV4ShowChatbotInquiryListener {
override fun onAuthV4ShowChatbotInquiry(result: ResultAPI) {
if (result.isSuccess) {
// 调用成功
}
}
})
API Reference: HIVEAuthV4:: showChatbotInquiry
聊天机器人设置¶
在聊天机器人中,AppDelegate 定义了 iOS 应用中对象顶部的公共操作(方法)。当使用 Xcode 构建项目时,它会自动生成该类。
Hive SDK 仅为用户方便而在纵向模式下暴露聊天机器人用户界面。在 iOS 上运行此功能需要与屏幕方向相关的功能,即游戏引擎的 AppDelegate 类中的 application(_:supportedInterfaceOrientationsFor:)
方法。该方法返回 UIInterfaceOrientationMask 值以供游戏使用。在仅支持横向的游戏中返回横向,在仅支持纵向的游戏中返回纵向,在支持所有类型的游戏中返回横向和纵向。
Warning
Unity 引擎已经包含了 AppDelegate 方法用于屏幕旋转,因此如果您在 Xcode 中构建项目,它会自动运行。也就是说,如果您在 Unity 中开发游戏,请不要添加 以下示例代码到您的游戏中。
Note
聊天机器人服务在您请求 解决方案架构师部分,Com2uS平台 进行AppID注册流程后可用。
// 如果您的游戏引擎是用Objective-c编写的,请实现以下AppDelegate函数。
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
// TODO: 仅适用于横屏
return UIInterfaceOrientationMaskLandscape;
// TODO: 仅适用于竖屏
return UIInterfaceOrientationMaskPortrait;
// TODO: 同时适用于横屏和竖屏
return UIInterfaceOrientationMaskAll;
}
在iPad上仅以纵向模式使用聊天机器人需要使用以下附加设置构建您的Xcode项目。
接触社区¶
为了自动登录处理和社区的正常运作,请通过如下所示的API调用公开社区网站。在设置遵循Hive规定的社区网站时,如果您想使用其他于*withhive.com*和*com2us.com*的自定义域名,请将域名注册到Hive 控制台白名单,然后调用此API。
对于Hive社区中的自动登录和其他功能,通过以下API调用公开社区页面。
Note
在Windows环境中,如果要公开的社区页面以框架形式打开,且页面上设置了X-Frame-Options头,则该页面无法渲染,出于安全原因。检查您想以框架形式打开的页面的选项。
API 参考: SocialV4 .showCommunity
#include "HiveSocialV4.h"
// 设置视图类型(全屏:全屏,框架:框架屏幕)
ESocialV4ViewType ViewType = ESocialV4ViewType::Frame;
FHiveSocialV4::ShowCommunity(ESocialV4ProviderType::HIVE, ViewType, FHiveSocialV4OnShowCommunityDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
if (Result.IsSuccess()) {
// call successful
}
}));
API 参考: SocialV4 .showCommunity
API 参考: SocialV4.showCommunity
import com.hive.SocialV4
import com.hive.ResultAPI
// 设置视图类型(全屏:全屏,框架:框架屏幕)
val viewType = SocialV4.ViewType.Frame
SocialV4.showCommunity(SocialV4.ProviderType.HIVE, viewType, object : SocialV4.SocialV4ShowCommunityListener{
override fun onShowCommunity(result: ResultAPI) {
if (result.isSuccess) {
// 调用成功
}
}
})
API 参考: SocialV4.INSTANCE .showCommunity
API 参考: SocialV4Interface.showCommunity
API 参考: HIVESocialV4 showCommunity
实现远程日志记录¶
远程日志记录是一项功能,允许您通过将调试日志从客户端发送到 Hive 服务器来远程检查已发布应用的日志以进行调试。要实现此功能,请在 Hive 控制台上注册。此功能仅激活目标用户的远程日志。有关如何注册的更多详细信息,请参阅 操作 > 配置 > 远程日志记录 中的操作指南。
-
激活
如果您激活远程日志,Hive SDK 日志和游戏日志将在您在 Hive 控制台上设置的时间段内收集。Hive SDK 日志基于 SDK 的设置,而游戏日志则灵活供游戏开发者设置值。Warning
确保
-
如果您生成过多的日志,过载的网络流量或日志处理可能会干扰您游戏的运行。Hive 建议您省略循环类型中的重复日志,或在交付之前将其汇总为一个日志,以实现远程日志记录。
-
如果您打算在游戏日志中使用远程日志记录,请提前联系GAMEVIL COM2US平台的解决方案架构师部分的负责人。
-
-
目标
远程日志记录仅针对通过 Hive SDK 初始化至少一次具有设备 ID (DID) 的用户。然而,如果在初始化 SDK 之前发生崩溃或错误,则某些游戏无法使用此功能。 -
示例代码
在游戏需要收集日志的每个部分插入以下代码。
API 参考: Logger .log
API 参考: Logger:: log
API 参考: Logger.i
API 参考: LogInterface.log
API 参考: Objective-C
远程配置¶
Hive SDK 使游戏能够管理与应用程序每个版本一对一映射的游戏服务器 URL。通过调用 Configuration 类的 getMetaData()
API,远程配置以字符串形式提供。以下是调用远程配置的示例代码。
API 参考: HiveConfiguration getMetaData
#include "HiveConfiguration.h"
// 数据键
FString Key = TEXT("game_server_url");
// 数据是否更新
bool bForceReload = false;
// 元数据调用
FHiveConfiguration::GetMetaData(Key, bForceReload, FHiveConfigurationOnMetaDataDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FString& Value) {
if (Result.IsSuccess()) {
// 调用成功
}
}));
API 参考: Configuration:: getMetaData
API 参考: Configuration.getMetaData
import com.hive.Configuration
import com.hive.ResultAPI
// 数据键
val key = "game_server_url"
// 数据是否更新
val forceReload = false
// 元数据调用
Configuration.getMetaData(key, forceReload, object : Configuration.GetMetaDataListener {
override fun onGetMetaData(result: ResultAPI, data: String) {
if (result.isSuccess) {
// 调用成功
}
}
})
Note
要使用缓存数据,请将 forceReload
设置为 false
。
- 如果在
forceReload
为true
时调用getMetaDate()
方法,它会删除本地存储的数据,并尝试从服务器获取最新数据。这个操作通常用于重新运行应用程序时的刷新任务。