3 iOS SDK Mini Face使用说明
3.1 准备工作
- 确认已经获取AppID、AppKey、活体 License(idl-license.face-ios)和 Face_Name。将idl-license.face-ios放到CWResource.bundle资源包中。
- Face_Name的具体命名规则:
appName +“-face-ios”
appName为申请账户时,提交给远程实名管理平台的应用名称。
3.2 引入SDK和配置文到工程中
将下面提到的framework和bundle资源添加到项目。
1.PayEgisFace.framework
2.IDLFaceSDK.framewo
3.com.baidu.idl.face.faceSDK.bundle
4.com.baidu.idl.face.model.bundle
5.CWResource.bundle
在Linked Frameworks and Libraries 添加以下库
- libstdc++.tbd
- PayEgisFace.framework
- CoreMedia.framework
- AVFoundation.framework
- IDLFaceSDK.framework
- Foundation.framework
修改项目配置
Other Link flags添加-ObjC
info.plist 配置
- iOS 集成需要在 info.plist 文件中添加“Privacy - Camera Usage Description”字段,客户根据业务需求填写相关说明。
- iOS 集成需要在 info.plist 文件中添加“Privacy - Microphone Usage Description”字段,客户根据业务需求填写相关说明。
- 在所需类中导入.h文件
#import <PayEgisFace/PayEgisAuthentication.h>
3.3 SDK初始化
方法名称为:
- (void) initSDK : (NSMutableDictionary *) context completionBlock:(PayegisAuthInitCompletionBlock)completionBlock
参数说明:
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
context | NSMutableDictionary | 上下文 | 初始化参数 |
上下文参数说明:
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
PayegisAuthSDKAppId | NSString | AppId | 申请下发的id |
PayegisAuthSDKAppKey | NSString | AppKey | 申请下发的key |
PayegisAuthSDKFaceName | NSString | Face_Name | 应用名称(注册开户填写的应用名) |
参考代码:
PayegisFaceSDK *_sdk = [PayegisFaceSDK shareInstance];
NSMutableDictionary *context = [NSMutableDictionary dictionaryWithObjectsAndKeys:
Face_Name,PayegisAuthSDKFaceName ,
AppId,PayegisAuthSDKAppID,
AppKey,PayegisAuthSDKAppKEY,
nil];
[_sdk initSDK:context completionBlock:^(NSError *error) {
}];
活体检测3.8.2.2之前有两个接口,3.8.2.2新增两个接口:
startLivenessAction: completion:、startLivenessAction: randomBool:completion:
- 传入随机数目[1~6],做相应数目的随机动作。
方法名称为:
-(void)startLivenessAction:(NSInteger) count completion:(LivenessCompletionBlock)completionBlock
需要以下入参
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
count | NSInteger | 活体数目 count < 1动作数目默认为1 1=< count <=6 动作数目为count count > 6 动作数目默认为6 | |
completionBlock | Block | 返回图片 | returnImage |
参考代码:
WeakSelf(weakSelf)
[_sdk startLivenessAction:3 completion:^(UIImage *retunImage) {
if (retunImage == nil) {
[self showError:@"未获取到图片"];
}else{
weakSelf.realImageView.image = retunImage;
}
}];
- 传入动作数组,决定是否随机执行活体检测动作。
方法名称为:
- (void) startLivenessAction:(NSArray *) actionsArray randomBool:(BOOL)randomBool completionBlock:(LivenessCompletionBlock) completionBlock
需要以下入参
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
actionsArray | NSArray | 动作数组 | 不允许设置重复动作 PEFaceLivenessActionTypeLiveEye = 0,// 眨眼 PEFaceLivenessActionTypeLiveMouth = 1, // 张嘴 PEFaceLivenessActionTypeLiveYawRight = 2, // 向右摇头 PEFaceLivenessActionTypeLiveYawLeft = 3, // 向左摇头 PEFaceLivenessActionTypeLivePitchUp = 4, // 抬头 PEFaceLivenessActionTypeLivePitchDown = 5 // 低头 |
randomBool | BOOL | 是否随机 | Yes 随机 NO 不随机 |
completionBlock | Block | 返回图片 | returnImage |
参考代码:
WeakSelf(weakSelf)
[_sdk startLivenessAction:@[@(PEFaceLivenessActionTypeLiveEye),@(PEFaceLivenessActionTypeLiveYawLeft),@(PEFaceLivenessActionTypeLiveYawRight)] randomBool:YES completionBlock:^(UIImage *retunImage) {
if (retunImage == nil) {
[self showError:@"未获取到图片"];
}else{
weakSelf.realImageView.image = retunImage;
}
}];
新增两个接口如下
- 传入随机数目[1~6],做相应数目的随机动作,超时弹出警告框,点击确认后可以重新开始进行活体动作。
方法名称为:
-(void)startLivenessAction:(NSInteger) count untilFinish:(BOOL)untilFinish completion:(LivenessCompletionBlock)completionBlock
需要以下入参
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
count | NSInteger | 活体数目 count < 1动作数目默认为1 1=< count <=6 动作数目为count count > 6 动作数目默认为6 | |
untilFinish | BOOL | 超时是否退出 | YES 超时不退出 NO 超时退出 |
completionBlock | Block | 返回图片 | returnImage |
参考代码:
WeakSelf(weakSelf)
[_sdk startLivenessAction:2 untilFinish:YES completion:^(UIImage *returnImage) {
if (returnImage == nil) {
[self showError:@"未获取到图片"];
}else{
weakSelf.realImageView.image = returnImage;
}
}];
- 传入随机数目[1~6]和事务号Token,做相应数目的随机动作,有两次机会。
方法名称为:
-(void)startLivenessAction:(NSInteger) count token:(NSString *)token closeBlock:(void(^)(BOOL)) closeBlock completion:(LivenessCompletionBlock)completionBlock
需要以下入参
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
count | NSInteger | 活体数目 count < 1动作数目默认为1 1=< count <=6 动作数目为count count > 6 动作数目默认为6 | |
token | NSString | 事务号 | |
completionBlock | Block | 返回图片 | returnImage |
参考代码:
WeakSelf(weakSelf)
[_sdk startLivenessAction:2 token:@"" closeBlock:^(BOOL boolv) {
// 活体检测关闭按钮操作
} completion:^(UIImage *returnImage) {
if (returnImage == nil) {
[self showError:@"未获取到图片"];
}else{
weakSelf.realImageView.image = returnImage;
}
}];
[danger] 注意
此方法是Pro版分离出活体检测framework后提供给Pro版标准流程调用的 不建议客户调用此方法
3.4 自定义活体检测页面
通过调用- (void) setFaceLivessTheme:(NSDictionary *) dictionary;
方法可以设置活体检测页面文字颜色、圆圈颜色、倒计时边框颜色和文字颜色。
- 下图设置活体检测页面相关文字提示、圆圈、倒计时圆圈和倒计时文字的颜色。
- 下图设置活体检测页面关闭按钮、警告提示、成功提示、背景的图片。
方法名称为:
- (void) setFaceLivessTheme:(NSDictionary *) dictionary;
参数说明:
参数 | 参数类型 | 描述 | 备注 |
---|---|---|---|
dictinoary | NSDictionary | 页面相关控件颜色 | FaceRemindLabelColor 文字提示颜色 FaceCircleColor 圆圈颜色 FaceCountDownColor 倒计时颜色 FaceCountDownLabelColor 倒计时文字颜色 |
参考代码:
NSDictionary *faceDictinoary = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor purpleColor],FaceRemindLabelColor,
[UIColor brownColor],FaceCircleColor,
[UIColor redColor],FaceCountDownColor,
[UIColor greenColor],FaceCountDownLabelColor,
nil];
[_sdk setFaceLivessTheme:faceDictinoary];