You need to enable JavaScript to run this app.
导航

iOS SDK 参考

最近更新时间2024.02.20 10:53:40

首次发布时间2023.04.28 09:58:14

本文档介绍 GNA iOS SDK 的参考信息。

SDK 初始化

头文件: <GameSdkNetworkManager/GameSdkNetworkManager.h>

GameSdkNetworkManager 类

描述

包含 SDK 初始化所需的参数和方法。

定义

@interface GameSdkNetworkManager : NSObject

@property(nonatomic, copy)NSDictionary * commonParams;
@property(atomic, copy)TTNetworkManagerCommonParamsBlock commonParamsblock;

@property (nonatomic, assign) bool enableVerboseLog;

typedef void (^Monitorblock)(NSDictionary*, NSString*);

+ (void)setMonitorBlock:(Monitorblock)block;
+ (Monitorblock)MonitorBlock;

+ (instancetype)shareInstance;

- (BOOL)ensureEngineStarted;

- (void *)getEngine;

- (void)start;

@end

属性

属性

描述

commonParams

SDK 的初始化参数。您需要通过 [commonParams setValue:@"" forKey:@""] 的方式为该参数赋值。参见 您需要为 commonParams 参数设置的值

commonParamsblock

初始化参数 block。您需要在该 block 中对 commonParams 参数赋值。

enableVerboseLog

是否开启 verbose 级别的日志。

  • YES:(默认)开启 verbose 级别的日志。适用于 debug 模式。
  • NO:关闭 verbose 级别的日志。适用于 release 模式。

您需要为 commonParams 参数设置的值

Key

Value 描述

device_id

标识某一台设备的唯一 ID。仅支持除 0 之外的阿拉伯数字。您需要自行设置和管理 Device ID。建议您复用 App 中已有的用于标识用户设备的 ID。

aid

标识您的 App 的唯一 ID。您需要从 GNA 控制台获取 App ID。您可以参见 获取 App ID 和 SDK 鉴权值 了解获取方法。

secret

SDK 鉴权值。您需要从 GNA 控制台获取 SDK 鉴权值。您可以参见 获取 App ID 和 SDK 鉴权值 了解获取方法。

device_platform

iOS 设备的平台类型,例如 iPhoneiPad

成员方法

成员方法

描述

start

初始化 GNA SDK。该方法是异步的。目前 iOS SDK 暂未提供初始化成功的回调。建议您尽早开始初始化。例如,您可以在 App 冷启动时开始初始化。

玩家自助网络分析

头文件: <GameSdkNetworkManager/TTNetDiagnosisService.h>

createRequestWithReqestType 方法

说明

该方法已废弃。建议您使用 createRequestWithRequestParams 方法。

描述

创建玩家自助网络分析请求。

定义

- (NSObject<TTNetDiagnosisRequestProtocol> *)createRequestWithReqestType:(TTNetExpRequestType)reqType
                                                                  target:(NSString *)target
                                                           netDetectType:(TTNetExpNetDetectType)netDetectType
                                                          multiNetAction:(TTNetExpMultiNetAction)multiNetAction
                                                               timeoutMs:(int64_t)timeoutMs
                                                                callback:(DiagnosisCallback)callback;

参数

参数

说明

reqType

请求类型。你必须设置为 DIAGNOSE_TARGET(3)。

target

网络分析的目标地址。可以是域名或 IPv4 地址。

netDetectType

网络分析使用的请求类型。建议您设置为 0。

multiNetAction

网络分析所适用的网络类型。建议您设置为 0。

timeoutMs

网络分析使用的请求的超时时间(毫秒)。如果网络分析超时,会触发 onDiagnosisComplete 回调。

callback

当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 DiagnosisCallback 回调。

返回值

TTNetDiagnosisRequestProtocol 对象。

createRequestWithRequestParams 方法

描述

创建玩家自助网络分析请求。

定义

- (NSObject <TTNetDiagnosisRequestProtocol> *)createRequestWithRequestParams:(TTNetDiagnosisRequestParams* _Nonnull)params
                                                                    callback:(DiagnosisCallback)callback;

参数

参数

说明

params

参见 TTNetDiagnosisRequestParams 类

callback

当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 DiagnosisCallback 回调。

返回值

TTNetDiagnosisRequestProtocol 对象。

TTNetDiagnosisRequestParams 类

描述

自助网络分析请求参数。

定义

@interface TTNetDiagnosisRequestParams : NSObject

@property(nonatomic, assign) TTNetExpRequestType requestType;

@property(nonatomic, strong) NSArray<NSString *> *targets;

@property(nonatomic, strong) NSString *dispatchFeature;

@property(nonatomic, assign) TTNetExpNetDetectType detectType;

@property(nonatomic, assign) TTNetExpMultiNetAction multiNetAction;

@property(nonatomic, assign) int64_t timeoutMs;
@end

参数

参数

说明

requestType

请求类型。你必须设置为 DIAGNOSE_TARGET(3)。

targets

网络分析的目标地址。可以是域名或 IPv4 地址。目前,您只能传入一个目标地址。

dispatchFeature

地址特征,用于网络分析的地址调度功能。您需要联系我们开启该功能。如果您不需要使用地址调度功能,可设置为 @""

detectType

网络分析使用的请求类型。建议您设置为 0。

multiNetAction

网络分析所适用的网络类型。建议您设置为 0。

timeoutMs

网络分析使用的请求的超时时间(毫秒)。如果网络分析超时,会触发 onDiagnosisComplete 回调。

DiagnosisCallback 回调

描述

报告网络分析的结果。您需要实现该回调并在调用 createRequestWithReqestType 方法时传入该回调。当网络分析完成、被取消、因网络切换中止、超时或失败时,SDK 都会通过该回调返回结果。

定义

typedef void (^DiagnosisCallback)(NSString* report);

参数

参数

描述

report

网络分析的结果。

start 方法

描述

开始玩家自助网络分析。自助网络分析完成后,会触发 createRequestWithReqestType 方法中设置的回调。

定义

- (void)start;

setUserExtraInfo 方法

描述

辅助描述信息。该信息会记录在分析报告里的 user_extra_info 字段。

定义

- (void)setUserExtraInfo:(NSString*)extraInfo;

参数

参数

描述

extraInfo

辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。

cancel 方法

描述

取消玩家自助网络分析。调用该方法会触发 createRequestWithReqestType 方法中设置的回调。

定义

- (void)cancel;

游戏对局网络分析

头文件: <GameSdkNetworkManager/TTGameDiagnosisService.h>

monitorBegin 方法

说明

该方法已废弃。推荐您使用 monitorBeginWithParams 方法。

描述

开始游戏对局网络分析。当玩家网络发生跳变时,SDK 会对从玩家客户端到您设置的目标地址之间的网络进行分析。

定义

- (void)monitorBegin:(NSString* _Nonnull)target extraInfo:(NSString* _Nullable)extraInfo;

参数

参数

描述

target

网络分析的目标地址,支持域名或 IPv4 地址。

extraInfo

辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。

monitorBeginWithParams 方法

描述

开始游戏对局网络分析。当玩家网络发生跳变时,SDK 会对从玩家客户端到您设置的目标地址之间的网络进行分析。

定义

- (void)monitorBeginWithParams:(TTGameMonitorBeginParams *_Nonnull)params;

参数

参数

描述

params

参见 TTGameMonitorBeginParams 类

TTGameMonitorBeginParams 类

描述

游戏对局网络分析参数。

定义

interface TTGameMonitorBeginParams : NSObject

@property(nonatomic, strong) NSString *target;

@property(nonatomic, strong) NSString *dispatchFeature;

@property(nonatomic, strong) NSString *extraInfo;

@property(nonatomic, copy) DiagnosisCallback reportCallback;
@end

参数

参数

描述

target

网络分析的目标地址,支持域名或 IPv4 地址。

dispatchFeature

地址特征,用于网络分析的地址调度功能。您需要联系我们开启该功能。如果您不需要使用地址调度功能,可设置为 @""

extraInfo

辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。

reportCallback

当网络分析完成、被取消、因网络切换中止、超时或失败时触发的回调。参见 DiagnosisCallback 回调。

DiagnosisCallback 回调

描述

报告网络分析的结果。您需要实现该回调并在调用 monitorBeginWithParams 方法时传入该回调。当网络分析完成、被取消、因网络切换中止、超时或失败时,SDK 都会通过该回调返回结果。

定义

typedef void (^DiagnosisCallback)(NSString* report);

参数

参数

描述

report

网络分析的结果。

doDiagnosisDuringGaming 方法

描述

在游戏对局中,手动对从玩家客户端到您在 monitorBegin 方法中设置的目标地址之间的网络进行分析。

定义

- (void)doDiagnosisDuringGaming:(nullable NSString*)extraMessage;

参数

参数

描述

extraMessage

辅助描述信息,例如玩家 ID 等信息。如果不需要辅助描述信息,可以填 NULL。

monitorEnd 方法

描述

结束游戏对局网络分析。

定义

- (void)monitorEnd:(nullable NSString*)extraInfo;

网络加速

头文件: <GameSdkNetworkManager/TTNetMpaService.h>

registerInitCallback 方法

描述

注册网络加速所需的回调。

定义

- (void)registerInitCallback:(ICallback)initCallback
             setAddrCallback:(ISetAddrCallback)setAddressCallback
                stopCallback:(ICallback)stopCallback;

参数

参数

说明

initCallback

调用 initService 方法后触发的回调,用于报告初始化是否成功。

setAddressCallback

调用 setAccAddress 方法后触发的回调,用于报告加速目标地址的设置结果。

stopCallback

调用 stop 方法后触发的回调,用于报告加速是否成功。

注意

不要在回调函数中执行耗时操作。在回调函数中执行耗时操作会阻塞 GNA SDK 的内部线程。

ICallback 回调

描述

该回调可用于:

  • 调用 initService 方法后触发的回调,用于报告初始化是否成功。该回调需要传入 registerInitCallback 方法的 initCallback 参数。
  • 调用 stop 方法后触发的回调,用于报告加速是否成功。该回调需要传入 registerInitCallback 方法的 stopCallback 参数。

定义

typedef void (^ICallback)(BOOL isSuccess, NSString* extraMsg);

参数

对于调用 initService 方法后触发的回调,参数如下:

参数

说明

isSuccess

初始化操作是否成功。

  • YES:初始化操作成功。
  • NO:初始化操作失败。

extraMsg

成功或失败的原因。

  • "Init Success":初始化成功。
  • "TTMpaClient Init Failed":初始化失败。您需要联系技术支持。
  • "Hook Init Failed":初始化失败。您需要联系技术支持。

对于调用 stop 方法后触发的回调,参数如下:

参数

说明

isSuccess

加速是否完成。

  • YES:因为您调用了 stop 停止加速。
  • NO:因为发生内部错误导致加速中止。

extraMsg

错误码。

setAddressCallback 回调

描述

调用 stop 方法后触发的回调,用于报告加速是否成功。该回调需要传入 registerInitCallback 方法的 stopCallback 参数。

定义

typedef void (^ISetAddrCallback)(BOOL isSuccess, NSString* extraMsg, NSString* context);

参数

参数

说明

isSuccess

调用 setAccAddress 设置加速目标地址列表的操作是否成功。

  • YES:操作成功。
  • NO:操作失败。

extraMsg

成功或失败的原因。

  • "SetAccAddress Success":设置成功。
  • "Not Init Mpa":设置失败。您在双通道加速功能初始化之前调用了 setAccAddress

context

调用 setAccAddress 方法时传入的 context 参数。

initService 方法

描述

初始化网络加速功能。调用该方法会触发 registerInitCallbacks 方法的 initCallback 参数中设置的回调。

定义

- (void)initService;

enableWiseMultiPath 方法

描述

开启或关闭智能双通道加速。如果您不调用该方法,SDK 默认关闭智能加速。

定义

- (void)enableWiseMultiPath:(BOOL)enable;

参数

参数

说明

enable

是否开启智能加速。

  • YES:开启。SDK 只会在 WiFi 网络连接质量降低时开启加速。在这种模式下,App 耗费的流量和电量会更少。
  • NO:关闭。SDK 会在您调用 start 时立即开启加速。在这种模式下,SDK 的加速效果最好,但 App 耗费的流量和电量也会更多。

start 方法

描述

开始网络加速。

定义

- (void)start:(NSString*)userLog;

参数

参数

说明

userLog

自定义信息。例如统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。

setAccAddress 方法

说明

该方法已废弃。建议您使用 setAccAddressWithParams 方法。

描述

设置需要加速的目标地址列表。调用该方法会触发 registerInitCallbacks 方法的 setAddressCallback 参数中设置的回调。

定义

- (void)setAccAddress:(NSArray<NSString*>*)address context:(NSString*)context append:(BOOL)append;

参数

参数

说明

address

需要加速的目标地址列表,每个地址为 ip:port 格式,例如 1.1.1.1:8080

context

上下文信息。您可以使用该参数将异步返回结果与方法调用关联起来。

append

是否增量设置加速地址。

  • YES:增量设置加速地址。
  • NO:全量设置加速地址。

setAccAddressWithParams 方法

描述

设置需要加速的目标地址列表。调用该方法会触发 registerInitCallbacks 方法的 setAddressCallback 参数中设置的回调。

定义

- (void)setAccAddressWithParams:(TTNetMpaAcceleratedPointParams*)params;

参数

参数

说明

params

参见 TTNetMpaAcceleratedPointParams

TTNetMpaAcceleratedPointParams

描述

网络加速参数。

定义

@interface TTNetMpaAcceleratedPointParams : NSObject

@property(nonatomic, strong) NSArray<NSString*>* addressList;

@property(nonatomic, assign) TTNetMpaSocketType socketType;

@property(nonatomic, assign) BOOL append;

@property(nonatomic, strong) NSString* context;
@end

参数

参数

说明

addressList

需要加速的目标地址列表,每个地址为 ip:port 格式,例如 1.1.1.1:8080

socketType

游戏客户端与游戏服务端之间的传输协议:

  • (默认)TTNetMpaSocketTypeUnspecified:(-1)未指定。
  • TTNetMpaSocketTypeUdp:(0)UDP 协议。
  • TTNetMpaSocketTypeTcp:(1)TCP 协议。

append

是否增量设置加速地址。

  • YES:增量设置加速地址。
  • NO:全量设置加速地址。

context

上下文信息。您可以使用该参数将异步返回结果与方法调用关联起来。

reportUserLog 方法

描述

上报用户日志。

定义

- (void)reportUserLog:(NSString*)userLog;

参数

参数

说明

userLog

自定义信息。例如业务的统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。

Stop 方法

描述

停止网络加速。调用该方法会触发 registerInitCallbacks 方法的 stopCallback 参数中设置的回调。

定义

- (void)stop:(NSString*)userLog;

参数

参数

说明

endLog

自定义信息。例如业务的统计埋点。加速结束时,GNA SDK 会将该自定义信息作为日志上报。