> >

概述

DeepKnow iOS SDK提供给集成iOS原生客户端开发的开发者使用, SDK不依赖任何第三方库。

DeepKonw 为极验业务安全服务的基础感知构件,主要用于采集客户端的相关安全信息,为后续服务提供数据,是其他极验服务的基础,

如果只需求无感知判断的用户部署此SDK即可。

如果需求行为验证服务,部署完成此SDK后,还需部署验证UI相关构件,请参考sensebot-部署参考

环境需求

条目 描述
开发目标 iOS8+
开发环境 Xcode 9.0
测试环境 真机
sdk三方依赖

获取 SDK

点击下载 SDK 资源

导入 SDK 到项目工程并配置开发环境

  1. 如果您是手动添加 SDK, 将下载获取的DeepKnowSDK.framework文件拖拽到工程中, 确保Copy items if needed已被勾选, 且确保在PROJECT -> Build Phases -> linked Frameworks and Libraries路径下。

    import

  2. 针对静态库中的Category, 需要在对应target的Build Settings->Other Linker Flags添加-all_load编译选项。建议先添加-ObjC,如果依然有问题,再添加-all_load

    linkerflags

配置接口

集成用户需要使用 iOS SDK 完成提供的以下接口:

  1. 初始化管理
  2. 启动管理器

集成代码参考下方的代码示例

编译并运行你的工程

编译你的工程, 体验畅快体验您的DeepKnow

build

代码示例

初始化

在工程中的AppDelegate.m文件头部引入动态库<DeepKnowSDK/DeepKnowSDK.h>

#import <DeepKnowSDK/DeepKnowSDK.h>

AppDelegate.m中的UIApplicationDelegate的代理方法里初始化和启动DeepKnow

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
DeepKnow *deepknow = [DeepKnow sharedInstance];
[deepknow start];

NSLog(@"DeepKnow Did Start. Version: %@", [DeepKnow sdkVersion]);

// Override point for customization after application launch.
return YES;
}

至此, DeepKnow已在您的应用中启动。

事件发生

给关键场景的视图控制页设置标签

在相应控制页的文件中#import <DeepKnowSDK/DeepKnowSDK.h>, 然后在UIViewController的生命周期中设置DeepKnow场景事件别名

一般用于标记核心控制页面, 比如活动等。 手动设置后, DeepKnowSDK会自动添加的控制页面标签到相应的数据里。

#import <DeepKnowSDK/DeepKnowSDK.h>

...

- (void)viewDidLoad {
[super viewDidLoad];

self.dpEventAlias = @"this is a KEY Event";

...
}

该操作需在viewDidLoad里进行

提交场景事件的描述

事件发生时, 需要将当前的SenseData数据提交到极验服务器

以登录事件举例


#import <DeepKnowSDK/DeepKnow.h>

...

- (void)viewDidLoad {
[super viewDidLoad];

self.dpEventAlias = @"login";
[self createDeepKnowDataButton];
...
}

- (void)createDeepKnowDataButton {
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(20, 96, 72, 44)];
button.backgroundColor = [UIColor blackColor];
button.layer.cornerRadius = 3;

button.titleLabel.text = @"登录";

[button addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];
}

- (void)login {
// 登录逻辑
...

/**
* @abstract 提交最近的行为副本, 并拉取分析结果
*
* @param gtID 场景id
* @param interactive 当前场景类型详见: 1 注册, 2 登录, 3 短信接口, 4 领券\抽奖, 5 下单, 6 发帖评论, 0 其他
* @param attr 额外的场景属性
*/
[[DeepKnow sharedInstance] emitRecentSenseDataWithGTID:@"<!-----申请gt_id-----!>"
interactive:1
attribution:@{@"gender" : @"male", @"member" : @"false"}
completionHandler:^(NSDictionary * _Nullable dict, NSError * _Nullable error) {
if (dict && !error) {
NSLog(@"dict: %@", dict.description);
// 根据dict返回内容, 处理后续结果
}
else {
NSLog(@"error: %@", error.userInfo);
// 提交遇到了错误
}
}];
}

与 SenseBot 验证结合使用(可选步骤)

根据业务实际需要, 将 DeepKnow 与 SenseBot 结合

集成请参考 DeepKnow with SenseBot

更详细的使用方法, 请参考提供的SDK的使用Demo