iOS接入

法规说明

根据我国《网络安全法》等相关法律法规及国家标准的要求,个人信息的收集和使用,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。故我们强烈建议您在拟接入易盾SDK前,检查和完善拟接入软件的《隐私政策》中有关采集个人信息部分的说明,确保已涵盖拟接入SDK项下需要采集的个人信息(详见附表),并明确您有权将上述个人信息提供给第三方用于安全服务。

附表

采集信息类型备注
设备型号
设备IP地址
设备软件版本信息
设备唯一标识码(idfa)
传感器数据提供开关,默认打开,可根据业务需求随时设置关闭

自动化模式

自动化模式下,SDK组件的接入流程:

  • 嵌入SDK
  • init:初始化SDK,初始化一次即可;
  • getToken:调用getToken接口获取token,每次调用返回不同的token值。一般由用户操作(提交等)来触发getToken,请注意:一个token只能使用一次,如果在同一页面中,允许用户多次操作,请多次调用getToken接口以获取不同的token。请勿在一次用户操作中,多次调用getToken接口;
  • 提交token:将token作为请求参数提交到业务方后端。

嵌入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
参数名类型是否必须说明
productNumberNSString产品编号
advanceModeBOOL是否使用高级模式,默认值NO,即默认是自动化模式

示例代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    // 以自动化模式初始化SDK
    [NTESCSGuardian startWithProductNumber:@"your_product_number"];
    return YES;
}

getToken接口

getToken接口返回唯一凭证token,业务方前端需要将此token提交到业务后端,业务后端再使用此token来check接口获取检测结果。注意:

  • 一般由用户的操作来触发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
参数名类型是否必须说明
businessIDNSString业务ID
timeoutint最长超时时间,单位秒。若没指定,则默认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
参数名类型是否必须说明
businessIDNSString业务ID
timeoutint最长超时时间,单位秒。若没指定,则默认3s;timeout可设置范围为1~10秒
blockvoid(^)(NSString*)回调Block

注意事项:

  • 该接口是以异步的方式获取Token,在生成Token完成时,会调用用户传入的Block进行回调,并传入Token到该Block中。

示例代码:

[NTESCSGuardian getTokenWithBusinessID:@"your_businessID" completeHandler:^(NSString *token) {
    // 在这里处理获得的Token
}];

设置传感器数据采集状态

  • 调用方式:
 + (void)setSeniorStatus:(BOOL)isOpen;
  • 接口描述:传感器数据采集开关,默认为开启。当需要禁用传感器数据采集时,设置为NO。 在init之后,可以随时调用。
  • 返回值:无。
  • 参数:YES为开启,NO为关闭。

IDFA配置

提交 AppStore 审核时关于 IDFA 的选项,如下图所示:

image title

以上4项代表的含义

  • 在 App 内投放广告

服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。

  • 将此 App 安装归因于先前投放的特定广告

跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告你需要勾选这一项。

  • 将此 App 中发生的操作归因于先前投放的特定广告

跟踪广告带来的用户的后续行为。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。

  • iOS 中的“限制广告跟踪”设置

对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的。

总结

  • 如果您的应用里只是集成了广告,不追踪广告带来的激活行为,那么选择 1 和 4。
  • 如果您的应用没有广告,而又获取了 IDFA。我们建议选择 2 和 4。
Online Chat Tel:95163223