iOS接入
自动化模式(推荐)
自动化模式下,SDK组件的接入流程:
- 嵌入SDK
- init:初始化SDK,初始化一次即可;
- getToken:调用getToken接口获取token,每次调用返回不同的token值。一般由用户操作(提交等)来触发getToken,请注意:一个token只能使用一次,如果在同一页面中,允许用户多次操作,请多次调用getToken接口以获取不同的token。请勿在一次用户操作中,多次调用getToken接口;
- 提交token:将token作为请求参数提交到业务方后端。
高级模式
高级模式允许应用通过API自主控制SDK何时开始工作、何时结束工作;在自动化模式下,init之后SDK自动开启工作。除非您明确知道SDK何时应该开始、何时应该结束,否则不建议您使用高级模式。
- 嵌入SDK
- init:初始化SDK,初始化一次即可;
- start:触发SDK开始工作,SDK开启事件监听等;
- getToken:调用getToken接口获取token,每次调用返回不同的token值。一般由用户操作(提交等)来触发getToken,请注意:一个token只能使用一次,如果在同一页面中,允许用户多次操作,请多次调用getToken接口以获取不同的token。请勿在一次用户操作中,多次调用getToken接口;
- 提交token:将token作为请求参数提交到业务方后端。
- stop:SDK停止工作,不再监听事件。
嵌入SDK
导入SDK
- 咨询易盾技术支持获得压缩包并解压,得到示例工程GuardianDemo和SDK文件 Guardian.framework。
- 拖拽Guardian.framework文件到Xcode工程(请勾选 Copy Items if needed 选项)
- 点击target -> Build Phase -> Link Binary With Libraries,添加AdSupport.framework框架。
注意事项:iOS SDK 最低兼容的系统版本是iOS 8.0。
iOS SDK会收集IDFA,请参考文档末IDFA配置。
导入头文件
在 AppDelegate.m
文件中、以及 需要使用SDK
的相关.m文件中,导入如下头文件:
#import <Guardian/NTESCSGuardian.h>
说明:如果是Swift工程,请在对应的 bridging-header.h 中导入此头文件即可。
init接口
接口说明:
+ (void)startWithProductNumber:(NSString *)productNumber;
或
+ (void)startWithProductNumber:(NSString *)productNumber advanceMode:(BOOL)advanceMode;
- 调用方式:
[NTESCSGuardian startWithProductNumber:@"your_product_number"];
或
[NTESCSGuardian startWithProductNumber:@"your_product_number" advanceMode:YES];
- 接口描述:初始化SDK
- 返回值:void
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
productNumber | NSString | 是 | 产品编号 |
advanceMode | BOOL | 否 | 是否使用高级模式,默认值NO,即默认是自动化模式 |
示例代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 以自动化模式初始化SDK
[NTESCSGuardian startWithProductNumber:@"your_product_number"];
return YES;
}
start接口
+ (void)start;
- 调用方式:[NTESCSGuardian start];
- 接口描述:控制SDK开始工作,默认无需调用,只有在高级模式下,在需要使用SDK的页面才调用此方法。
- 返回值:void
注意事项: 在调用此接口前,请确保您是以高级模式启动的SDK。
getToken接口
getToken接口返回唯一凭证token,业务方前端需要将此token提交到业务后端,业务后端再使用此token来check接口获取检测结果。注意:
- 在高级模式下,请确保先调用了start接口
- 一般由用户的操作来触发getToken调用,比如用户点击“提交”按钮等
- 一个token只能使用一次
- 如果在不刷新页面的情况下,业务功能允许用户多次操作,请多次调用getToken接口以获取不同的token
非线程安全getToken接口
非线程安全接口的getToken接口,提供用户在主线程中调用,如果用户希望在后台线程中调用接口,请使用线程安全的getToken接口。
接口说明:
+ (NSString *)getTokenWithBusinessID:(NSString *)businessID;
或
+ (NSString *)getTokenWithBusinessID:(NSString *)businessID timeout:(int)timeout;
- 调用方式:
[NTESCSGuardian getTokenWithBusinessID:@"your_businessID"];
或
[NTESCSGuardian getTokenWithBusinessID:@"your_businessID" timeout:3];
- 接口描述:获取唯一凭证token,此接口是同步接口
- 返回值:String
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
businessID | NSString | 是 | 业务ID |
timeout | int | 否 | 最长超时时间,单位秒。若没指定,则默认3s;timeout可设置范围为1~10秒 |
注意事项:
- 该接口是以同步的方式返回Token,非线程安全,不建议在多线程环境下调用该接口。
示例代码:
NSString *token = [NTESCSGuardian getTokenWithBusinessID:@"your_businessID" timeout:3];
// 处理Token
线程安全getToken接口
线程安全接口是线程安全的,提供用户在多线程环境下调用,安全的获取Token。
接口说明:
+ (void)getTokenWithBusinessID:(NSString *)businessID completeHandler:(tokenBlock)block;
或
+ (void)getTokenWithBusinessID:(NSString *)businessID timeout:(int)timeout completeHandler:(tokenBlock)block;
- 调用方式:
[NTESCSGuardian getTokenWithBusinessID:@"your_businessID" completeBloke:block]
或
[NTESCSGuardian getTokenWithBusinessID:@"your_businessID" timeout:3 completeBloke:block]
- 接口描述:以异步的方式返回用于查询的Token,通过参数block进行完成时的回调
- 返回值:void
参数名 | 类型 | 是否必须 | 说明 |
---|---|---|---|
businessID | NSString | 是 | 业务ID |
timeout | int | 否 | 最长超时时间,单位秒。若没指定,则默认3s;timeout可设置范围为1~10秒 |
block | void(^)(NSString*) | 是 | 回调Block |
注意事项:
- 该接口是以异步的方式获取Token,在生成Token完成时,会调用用户传入的Block进行回调,并传入Token到该Block中。
示例代码:
[NTESCSGuardian getTokenWithBusinessID:@"your_businessID" completeHandler:^(NSString *token) {
// 在这里处理获得的Token
}];
stop接口
+ (void)stop;
- 调用方式:[NTESCSGuardian stop];
- 接口描述:控制SDK结束工作,默认无需调用,只有在高级模式下,当不再需要SDK时才调用此方法。下次使用时,请调用start接口控制SDK开始工作。
- 返回值:void
注意事项:
- 在调用此接口前,请确保您是以高级模式启动的SDK。
- 在调用此接口前,请确保您已经让SDK开始工作了。#
IDFA 配置
提交 AppStore 审核时关于 IDFA 的选项,如下图所示:
以上4项代表的含义
- 在 App 内投放广告
服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。
- 将此 App 安装归因于先前投放的特定广告
跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告你需要勾选这一项。
- 将此 App 中发生的操作归因于先前投放的特定广告
跟踪广告带来的用户的后续行为。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。
- iOS 中的“限制广告跟踪”设置
对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的。
总结
- 如果您的应用里只是集成了广告,不追踪广告带来的激活行为,那么选择 1 和 4。
- 如果您的应用没有广告,而又获取了 IDFA。我们建议选择 2 和 4。