跳到主要内容
版本:v7

TapSDK iOS 接口

XDSDK v7 已经内置并初始化 TapSDK v4,游戏侧不需要自行初始化 TapSDK。需要使用 TapSDK 能力时,可以参考 TapSDK 官方文档对接口的说明,但使用的时候请调用 XDSDK 导出的 XDGTapSDKXDTapSDK4WrapperSDK 封装接口。

依赖与入口

Native iOS 工程请先参考 iOS 接入配置 集成 XDSDK。Framework 方式需要包含 XDTapSDK4WrapperSDK.framework 和相关 TapTap 资源 bundle;SPM 方式按需勾选对应 Package Product。

能力入口类
TapSDK 登录XDGAccount
实名和防沉迷
TapDB 数据分析XDGTapTapEvent
内嵌动态XDGTapTapMomentWrapper
成就系统XDGTapTapAchievementWrapper
云存档XDGTapTapCloudSaveWrapper
#import <XDTapSDK4WrapperSDK/XDTapSDK4WrapperSDK.h>

TapTap 登录

请使用 XDSDK 的登录接口

实名和防沉迷

XDSDK 在国内登录流程中已包含实名和防沉迷流程,游戏不需要在自行处理相关内容。

TapDB 数据分析

对应 TapSDK 文档:TapDB 客户端接入

发送普通事件请使用 XDSDK 的事件上报接口

以下接口请使用 XDGTapTapEvent。

方法说明
+ deviceInitialize:初始化设备属性,只在字段为空时写入。
+ deviceUpdate:更新设备属性,新值会覆盖旧值。
+ deviceAdd:累加设备数值属性。
+ userInitialize:初始化账号属性,只在字段为空时写入。
+ userUpdate:更新账号属性。
+ userAdd:累加账号数值属性。
+ addCommonProperty:value:添加单个静态通用事件属性。
+ addCommon:批量添加静态通用事件属性。
+ clearCommonProperty:清除单个静态通用事件属性。
+ clearCommonProperties:批量清除静态通用事件属性。
+ clearAllCommonProperties清除全部静态通用事件属性。
+ registerDynamicProperties:注册动态通用事件属性,每次发送事件时调用 block 获取最新属性。

deviceAdduserAdd 仅支持数值属性。动态属性回调中应返回普通 NSDictionary 数据,避免执行耗时逻辑。

#import <XDTapSDK4WrapperSDK/XDTapSDK4WrapperSDK.h>

[XDGTapTapEvent deviceInitialize:@{@"first_server": @"server_1"}];
[XDGTapTapEvent userUpdate:@{
@"current_server": @"server_2",
@"level": @18
}];
[XDGTapTapEvent addCommon:@{@"build_type": @"release"}];

[XDGTapTapEvent registerDynamicProperties:^NSDictionary *{
return @{@"battle_mode": @"pve"};
}];

内嵌动态

对应 TapSDK 文档:内嵌动态开发指南

方法说明
+ setDelegate:设置动态回调代理。
+ open打开 TapTap 动态页面。
+ openScene:打开指定场景动态页面。
+ publish:发布动态,图片内容使用 XDGTapTapMomentImageData,视频内容使用 XDGTapTapMomentVideoData
+ closeWithTitle:content:showConfirm:关闭所有内嵌窗口,可按参数展示确认弹窗。
+ close直接关闭所有内嵌窗口。
+ fetchNotification获取新动态数量,结果通过代理回调返回。
+ needDeferSystemGestures项目自己的 Controller 需要配置 Defer System Gestures 时调用。

XDGTapTapMomentDelegate 可选实现 onMomentCallbackWithCode:msg:fetchNotification 成功时,msg 为新消息数量。

发布数据限制:

类型字段限制
XDGTapTapMomentImageDataimages最多 1 张,超出时截取第一张
XDGTapTapMomentImageDatacontent最多 1200 字符
XDGTapTapMomentVideoDataimages最多 1 张,超出时截取第一张
XDGTapTapMomentVideoDatavideos最多 1 个视频,超出时截取第一个
XDGTapTapMomentVideoDatatitle最多 40 字符
XDGTapTapMomentVideoDatacontent最多 40 字符
#import <XDTapSDK4WrapperSDK/XDTapSDK4WrapperSDK.h>

@interface TapMomentHandler : NSObject <XDGTapTapMomentDelegate>
@end

@implementation TapMomentHandler
- (void)onMomentCallbackWithCode:(NSInteger)code msg:(NSString *)msg {
// 根据 code 和 msg 处理动态状态
}
@end

TapMomentHandler *handler = [TapMomentHandler new];
[XDGTapTapMomentWrapper setDelegate:handler];
[XDGTapTapMomentWrapper open];

XDGTapTapMomentImageData *data = [XDGTapTapMomentImageData new];
data.content = @"动态文字内容";
data.images = @[@"file:///path/to/image.png"];
[XDGTapTapMomentWrapper publish:data];

成就系统

对应 TapSDK 文档:成就系统开发指南

方法说明
+ incrementWithAchievementId:steps:增加分步成就步数。
+ unlockWithAchievementId:解锁指定成就。
+ registerCallbackWithCallback:注册成就回调。
+ unregisterCallbackWithCallback:移除成就回调。
+ setToastEnableWithEnable:设置是否展示成就达成气泡弹窗。
+ showAchievements显示成就页,已安装 TapTap 时跳转客户端,否则跳转 Web。

XDGTapTapAchievementCallback 需要实现:

方法说明
onAchievementSuccessWithCode:result:成就操作成功。result 包含成就 ID、成就名称、成就类型和当前步数。
onAchievementFailureWithAchievementId:errorCode:errorMsg:成就操作失败。

成就类型 XDGTapTapAchievementTypeNORMAL 表示普通成就,XDGTapTapAchievementTypePLATINUM 表示白金成就。

#import <XDTapSDK4WrapperSDK/XDTapSDK4WrapperSDK.h>

@interface AchievementHandler : NSObject <XDGTapTapAchievementCallback>
@end

@implementation AchievementHandler
- (void)onAchievementSuccessWithCode:(NSInteger)code result:(XDGTapTapAchievementResult *)result {
// 成就操作成功
}

- (void)onAchievementFailureWithAchievementId:(NSString *)achievementId
errorCode:(NSInteger)errorCode
errorMsg:(NSString *)errorMsg {
// 成就操作失败
}
@end

AchievementHandler *handler = [AchievementHandler new];
[XDGTapTapAchievementWrapper registerCallbackWithCallback:handler];
[XDGTapTapAchievementWrapper unlockWithAchievementId:@"achievement_id"];
[XDGTapTapAchievementWrapper incrementWithAchievementId:@"achievement_id" steps:1];
[XDGTapTapAchievementWrapper setToastEnableWithEnable:YES];
[XDGTapTapAchievementWrapper showAchievements];

云存档

对应 TapSDK 文档:云存档开发指南

方法说明
+ registerCloudSaveCallback:注册 CloudSave 统一状态回调。
+ unregisterCloudSaveCallback:取消注册 CloudSave 统一状态回调。
+ createArchiveWithArchiveMetadata:archiveFilePath:archiveCoverPath:callback:创建存档并上传云端。
+ updateArchiveWithArchiveUUID:archiveMetadata:archiveFilePath:archiveCoverPath:callback:更新指定存档。
+ deleteArchiveWithArchiveUUID:callback:删除指定存档。
+ getArchiveListWithCallback:获取当前用户的存档列表。
+ getArchiveDataWithArchiveUUID:archiveFileID:callback:下载指定存档文件。
+ getArchiveCoverWithArchiveUUID:archiveFileID:callback:获取指定存档封面。

XDGArchiveMetadata 用于创建和更新存档,包含 namesummaryextraplaytimeXDGArchiveData 为服务端返回的存档数据,包含 uuidnamesummaryextraplaytimesaveSizecoverSizefileIdcreatedTimemodifiedTime

回调协议:

协议方法说明
XDGTapTapCloudSaveCallbackonResult:云存档统一状态结果。
XDGTapTapCloudSaveRequestCallbackonArchiveCreatedWithArchive:创建成功。
XDGTapTapCloudSaveRequestCallbackonArchiveUpdatedWithArchive:更新成功。
XDGTapTapCloudSaveRequestCallbackonArchiveDeletedWithArchive:删除成功。
XDGTapTapCloudSaveRequestCallbackonArchiveListResultWithArchives:存档列表结果。
XDGTapTapCloudSaveRequestCallbackonArchiveDataResultWithArchiveUUID:archiveFileID:data:存档数据下载结果。
XDGTapTapCloudSaveRequestCallbackonArchiveCoverResultWithArchiveUUID:archiveFileID:coverData:存档封面下载结果。
XDGTapTapCloudSaveRequestCallbackonRequestErrorWithErrorCode:errorMessage:请求失败。
#import <XDTapSDK4WrapperSDK/XDTapSDK4WrapperSDK.h>

XDGArchiveMetadata *metadata = [XDGArchiveMetadata new];
metadata.name = @"save_001";
metadata.summary = @"第一章";
metadata.extra = @"{}";
metadata.playtime = 3600;

[XDGTapTapCloudSaveWrapper createArchiveWithArchiveMetadata:metadata
archiveFilePath:@"path/to/archive/file"
archiveCoverPath:@"path/to/cover/image"
callback:requestCallback];

[XDGTapTapCloudSaveWrapper getArchiveListWithCallback:requestCallback];