使用指南
1.SDK 目录结构
1.1 如何运行Demo
看下你拿到手上的Demo结构如下图,点击项目即可运行
1.2 运行Demo的相关配置
该配置只针对在线版本,离线版6.0.0版本以后不在提供SDK。
配置app_id和aap_Key
完成以上配置,运行即可。
2.将SDK集成到开发环境
使用 SDK 前,首先需要将其集成到您的开发环境中。
项目的开发环境需要在 Xcode 6.0版本及以上,运行环境需要 iOS9.0 及以上,支持机型 iPhone 4s以上。下文将说明开发中需要的详细操作。
2.1 配置开发环境
2.1.1 编译选项设置
2.1.1.1 需要添加 Xcode 链接器参数:-ObjC 和 -lstdc++。
添加 -ObjC 参数后链接器可以把静态库中所有的 Objective-C 类和分类都加载到最后的可执行文件中。
添加 -lstdc++ 参数是由于我们的静态库中需要 c++ 标准库支持。
添加方法:
TARGETS -> Build Settings -> Linking -> Other Linker Flags 中添加 -lstdc++ 和 -ObjC 。
2.1.1.2 需要添加一下三个系统的编译链接库
2.1.1.3 如果使用的开发工具是Xcode 7.0以上版本,需要手动关闭Bitcode。
步骤:
TARGETS -> BuildSettings -> Enable Bitcode 设置为 NO。
2.2 将SDK集成到项目中
2.2.1 将demo中指定的文件夹(OCRLib)加入到已经配置好环境的xcode项目(以下称项目)中
打开我们提供的Demo,我们的Demo提供的是重UI,高度自定义UI的用户请参考API接口;
LFBankCard.h和LFIDCard.h
接下来我们看如何将代码集成到环境中。
1、打开我们提给您的Demo工程文件夹,你将看到如下的结构
其中includ文件夹中包含BankCard和IDCard UI相关的文件
2、将OCRLib文件夹加入工程中,选中如图的三项。
3、在项目中创建调用银行卡识别和身份证识别按钮,实现点击方法
UIButton * bankBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 50)];
[bankBtn setBackgroundColor:[UIColor grayColor]];
[bankBtn setTitle:@"银行卡扫描" forState:UIControlStateNormal];
[bankBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
bankBtn.center = self.view.center;
[bankBtn addTarget:self action:@selector(bankBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:bankBtn];
UIButton * IDBtn = [[UIButton alloc] initWithFrame:CGRectMake(30, 300, 100, 50)];
[IDBtn setBackgroundColor:[UIColor grayColor]];
[IDBtn setTitle:@"身份证扫描" forState:UIControlStateNormal];
[IDBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[IDBtn addTarget:self action:@selector(IDBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:IDBtn];
6、实现按钮的点击方法
- (void)bankBtnClick{
LFBankCardScannerController *bankVc = [[LFBankCardScannerController alloc] initWithOrientation:AVCaptureVideoOrientationPortrait licensePath:nil shouldFullCard:NO];
bankVc.delegate = self;
bankVc.showAnimation = YES;
// 需要AppID 和 AppKey
bankVc.appID = @"";
bankVc.appSecret = @"";
[self presentViewController:bankVc animated:YES completion:nil];
}
- (void)IDBtnClick{
LFIDCardScannerController *vc = [[LFIDCardScannerController alloc] initWithOrientation:AVCaptureVideoOrientationPortrait licensePath:nil shouldFullCard:NO token:token];
vc.delegate = self;
// 需要AppID 和 AppKey
vc.appID = @"";
vc.appSecret = @"";
vc.showAnimation = YES;
[self presentViewController:vc animated:YES completion:nil];
}
7、实现代理方法,这里只示例银行卡。上传数据请参考Demo中的详细代码。
- (void)getCardResult:(LFBankCard *)bankcard{
if (bankcard){
NSLog(@"这里获取到加密后的数据d,调用上传即可");
}
}
- (void)didCancel{
NSLog(@"取消回调,必须实现");
[self dismissViewControllerAnimated:YES completion:nil];
}
2.3 配置 APP_ID
、APP_SECRET
获取APP_ID 和 APP_SECRET
1、访问Linkface官网[https://www.linkface.cn] (#https://www.linkface.cn),点击右上角“管理中心”;
2、按照流程提示完成账号的注册及登录,添加应用;
3、在应用管理界面,可以看到您应用的API ID、API SECRET,即SDK中需要使用的APP_KEY,、 APP_SECRET。
在使用SDK上传成功数据之前,需要先配置好您的 APP_ID 和 APP_SECRET。
请参考下面的代码:
2.2.1 在Demo中LFFrontPageViewController.m中设置 id 和 secret
#error 请删除此行, 在线版填充api_id、api_secret、urlString值
NSString *api_id = @"";
NSString *api_secret = @"";
2.3在Xcode8上调试iOS9以上系统时,调用相机功能时,在info.plist文件下添加隐私权限。
<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string>
2.4添加http访问权限。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
2.5 初始化你的SDK
在初始化时分别调用初始化的各自初始化方法即可;这里LFBankCrad举例: modelPath:模型的名称,如果传nil,默认是model的名称是我们提供的demo中的名称。 extraPath:可传nil。
LFBankCard *bankcard = [[LFBankCard alloc] initWithModelPath:modelPath extraPath:extraPath];
2.6 其他
1、如果你集成了其中一个SDK,并且完成了动态更新机制,SDK正常运行,再添加另外一个SDK时,如果你不想修改动态更新的逻辑代码;则你不需要关心这部分代码;正常初始化新添加SDK即可。