跳到主要内容
版本:v7

iOS

更新文件

  1. 提供目前使用的 SDK 列表和版本给平台同事,获取新版的 SDK。
  2. 联系平台同事获取新版的 XDConfig.json 文件。

模块变更

  • 原国内和海外按平台拆分的模块合并成 XDCNWrapper.frameworkXDGlobalWrapper.framework 两个可选模块,按需集成。
  • 移除 TapSDK 和 LCSDK,新版封装在 XDTapSDK4WrapperSDK.framework 中。

接口变化

此处只罗列和 v6 版本有差异的代码片段。

基础模块

初始化

  • 初始化时需指定当前语言。
  • 初始化支持设定渠道信息,优先级高于 XDConfig.json 中的配置。若需保留配置文件中的渠道信息,请传入空字符串。
#import <XDCommonSDK/XDCommonSDK.h>

XDGInitParam *initParam = [XDGInitParam new];
// 语言和渠道根据实际情况设置
initParam.lang = XDGLanguageLocaleEnglish;
initParam.channel = @"AP";
// db 参数可透传给 TapDB 的 device_login/user_login 事件
NSMutableDictionary *dbProperties = [NSMutableDictionary dictionary];
[dbProperties setValue:@"demo_extra_value" forKey:@"demo_extra_key"];
initParam.dbProperties = dbProperties;
[XDGSDK initSDK:initParam
handler:^(BOOL success, NSString *msg) {
if (success) {
NSLog(@"初始化成功");
} else {
NSLog(@"初始化失败:%@", msg);
}
}];

// 判断是否初始化完成
BOOL isInitialized = [XDGSDK isInitialized];

埋点

  • 不再需要调用 trackUser 方法,SDK 会自动上报用户信息。若之前上报的 userid 不是 XDID,请联系技术支持。
  • 预置事件类型已移除,如 trackAchievementeventCompletedTutorialeventCreateRole 等接口已删除,如有需求请联系技术支持。

其他

  • 移除 XDGSDK.getRegionInfo 接口,请使用查询 IP 信息接口
  • 移除 XDGSDK.showDetailAgreement 接口,请使用打开网页接口
  • 移除 XDGSDK.disableAgreementUI 接口,如有需求请联系技术支持
  • 移除 XDGSDK.validateWithCaptcha 接口,如有需求请联系技术支持

账户模块

用户状态回调

v7 中用户状态回调的枚举值有变更:

v6 枚举值v7 枚举值
XDGUserStateChangeCodeLogout = 0x9001XDGUserStateChangeCodeLogout = 0
XDGUserStateChangeCodeBindSuccess = 0x1001XDGUserStateChangeCodeBindSuccess = 1
XDGUserStateChangeCodeUnBindSuccess = 0x1002XDGUserStateChangeCodeUnBindSuccess = 2
XDGUserStateChangeCodeProtocolAgreedAfterLogout = 0x2001XDGUserStateChangeCodeProtocolAgreedAfterLogout = 3
-XDGUserStateChangeCodeSupportNoUnread = 4(新增)
-XDGUserStateChangeCodeSupportHasUnread = 5(新增)

获取用户

移除 XDGAccount.getUser 异步接口,请使用同步接口 XDGAccount.getCurrentUser

XDGUser *user = [XDGAccount getCurrentUser];
NSString *xdUserID = user.userId; // user.userId 为用户在 XD 账户系统的 XD User ID(用户唯一标识)
NSString *name = user.name;
NSString *nickName = user.nickName;
NSString *avatar = user.avatar;

打开注销页面

移除 openUnregister 接口,请使用 openAccountDeletion

[XDGAccount openAccountDeletion];

客服

原有的 XDGSDK.report 接口及自行接入的 TapSupportSDK 均不再支持,请改用新版内置的客服接口 XDGAccount.openCustomerService

客服未读消息状态会通过 UserStatusChangeCallback 回调,有未读消息时返回 XDGUserStateChangeCodeSupportHasUnread,无未读消息时返回 XDGUserStateChangeCodeSupportNoUnread

XDGRoleInfo *role = [XDGRoleInfo new];
role.roleId = roleId; // 必填
role.roleName = roleName; // 必填
role.roleLevel = roleLevel; // 必填
role.serverId = serverId; // 必填
NSString *pathStr = @"客服内的相对路径,一般留空即可";
NSDictionary *paramsDic = @{@"自定义参数 key":@"自定义参数 value"};
[XDGAccount openCustomerService:role path:pathStr params:paramsDic];

其他

  • 移除 XDGAccount.isTokenActiveWithType 接口

支付模块

发起支付

仅保留 XDGPayment.payWithParams 接口,payWithOrderId 接口已删除。

XDGPaymentParams *params = [XDGPaymentParams new];
params.gameOrderId = @"可选,游戏侧订单号,不填会自动生成随机订单号";
params.productId = @"必须,在苹果后台配置的商品 ID";
params.roleId = @"必须,角色 ID";
params.serverId = @"必须,服务器 ID";
params.extra = @"可选,透传参数";
params.quantity = 1; // 购买数量,限制为 1-10

[XDGPayment payWithParams:params completionHandler:^(XDGOrderInfo * _Nullable orderInfo, NSError * _Nullable error) {
if (error) {
// 支付失败
} else {
// 支付成功
}
}];

查询未完成订单

XDGPayment.queryRestoredPurchases 接口改为 XDGPayment.queryPendingPurchases 接口。

[XDGPayment queryPendingPurchases:^(NSArray<XDGPendingPurchase *> * _Nonnull result) {
for (XDGPendingPurchase *purchase in result) {
NSString *productId = purchase.productId; // 商品ID
NSString *purchaseToken = purchase.pendingPurchaseToken; // 订单标识符
}
}];

补单处理

XDGPayment.restorePurchase 接口改为 XDGPayment.handlePendingPurchase 接口。

XDGPaymentParams *params = [XDGPaymentParams new];
params.gameOrderId = @"可选,游戏侧订单号,不填会自动生成随机订单号";
params.productId = @"必须,在苹果后台配置的商品 ID";
params.roleId = @"必须,角色 ID";
params.serverId = @"必须,服务器 ID";
params.extra = @"可选,透传参数";
params.quantity = 1;
params.pendingPurchaseToken = @"未完成订单标识符,从查询未完成订单接口获取";
[XDGPayment handlePendingPurchase:params completionHandler:^(XDGOrderInfo * _Nullable orderInfo, NSError * _Nullable error) {
if (error) {
// 兑换或补单失败
} else {
// 兑换或补单成功
}
}];

分享模块

v7 只保留最新的 XDGSharing 模块,详细用法请参考 分享文档