跳到主要内容

开发指南

【可选】【初始化前】设置包体确定的区域

如果需要韩国包体使用韩国协议弹窗时,调用该接口,并传入 "KR"。请在初始化前指定该接口,不要在不确定的时候调用该接口。

枚举类:Lang

com.xd.intl.common.utils.EnvHelper.setTargetCountryOrRegion("KR");

【建议】【初始化前】设置当前语言

请在初始化前设定好预期的语言,不设置的话 SDK 会尝试匹配系统设置的语言,匹配不上的话则按照国内简中,海外英文的逻辑展示。 目前支持的语言类型有:

类型简体中文繁体中文英文泰文印尼文韩语日语德语法语葡萄牙语西班牙语土耳其语俄罗斯语越南语
枚举ZH_CNZH_TWENTHIDKRJPDEFRPTESTRRUVI

枚举类:Lang

XDGSDK.setLanguage(Lang.ZH_CN);

初始化

  1. XDSDK 会完成初始化大部分 TapSDK,但不包括防沉迷和公告模块。
  2. TapSDK 会自动完成 TapDB 与云服务模块的初始化。请不要重复初始化。
XDGSDK.initSDK(Activity activity,XDGInitCallback callback);

如果要判断初始化是否完成,可通过如下接口查询。

boolean isInitialized=XDGSDK.isInitialized();

Unity 日志输出

Unity SDK 中默认不输出运行时日志,需要实现委托代码自行输出:

XDGLogger.LogDelegate = (level, message) => {
switch (level) {
case XDGLogLevel.Debug:
Debug.Log($"XD [DEBUG] {DateTime.Now} {message}");
break;
case XDGLogLevel.Warn:
Debug.LogWarning($"XD [WARN] {DateTime.Now} {message}");
break;
case XDGLogLevel.Error:
Debug.LogError($"XD [ERROR] {DateTime.Now} {message}");
break;
default:
break;
}
};

日志输出级别遵循如下原则:

  • Debug:调试和一般信息,包括请求/响应日志,SDK 状态信息等,在开发阶段和排查问题阶段需要查看。
  • Warn:警告信息,包括可能潜在问题,预期内的错误,不影响 SDK 使用,但需要开发者注意。
  • Error:错误信息,包括 SDK 无法处理的错误,Unity 会打印 SDK 未捕获的异常。

客服系统

客服系统建议参考定制版 TDS客服文档进行接入

商店评分

XDGSDK.storeReview();

埋点

目前已集成以下五种拥有数据能力的 SDK。

  • TapDB
  • Appsflyer
  • Adjust
  • Firebase
  • Facebook
危险

注意:SDK 内部针对 「支付成功」 事件有做统一的事件埋点处理,如有疑问联系相关人员。

提示

针对 Adjust 平台的数据统计能力,需游戏将对应的事件配置放入到 XDConfig.json 文件中,详情请参考 XDConfig.json 文件模版说明, 按照 key-value 的形式进行一一对应,目前 SDK 「支付成功」 对应的 key 为 TDSG_ADJ_REVENUE

自定义事件埋点

/**
* 自定义埋点
* @param: eventName: 事件名称
*/
XDGSDK.trackEvent(String eventName);

/**
* 附带参数的自定义埋点
*
* @param: eventName: 事件名称
* @param: eventsMap: 附带参数
*/
XDGSDK.trackEvent(String eventName,Map<String, Object> eventsMap)

内置埋点

为方便游戏快速接入,SDK 提前定义了与游戏相关的埋点,游戏可直接在对应事件触发点直接调用即可:

// 角色埋点
XDGSDK.trackRole(String serverId,String roleId,String roleName,int level);

// 用户埋点
XDGSDK.trackUser(xdgUser.userId); //要用 xdgUser.userId

// 完成新手引导埋点
XDGSDK.eventCompletedTutorial();

// 创建角色埋点
XDGSDK.eventCreateRole();

// 成就埋点
XDGSDK.trackAchievement();

获取版本号

XDGSDK.getVersionName(); // 6.0.0(6000000)

获取地区信息

提示

这个接口实际封装了 https://ip.xindong.com/myloc2 中返回的地区信息,详细的 countryCode 定义可以参考 IBAN 的 Alpha-2 code

 XDGSDK.getRegionInfo(new Callback<XDGRegionInfo>(){
@Override
public void onCallback(XDGRegionInfo xdgRegionInfo,XDGError tdsServerError) {
if (xdgRegionInfo != null) {
Log.d("getRegionInfo",String.format("国家: %s, 时区: %s, 城市: %s, 来源: %s",xdgRegionInfo.countryCode,xdgRegionInfo.timeZone,xdgRegionInfo.city,xdgRegionInfo.locationInfoType));
}
}
});