1 iOS Pro SDK集成说明

1.1 准备工作

  • 确认已经获取AppID、AppKey、OCR License(aip.license)、活体License(idl-license.face-ios) 和 Face_Name。将aip.license和idl-license.face-ios放到CWResource.bundle资源包中。
  • Face_Name的具体命名规则: appName +“-face-ios” appName为申请账户时,提交给远程实名管理平台的应用名称。

1.2 引入SDK和配置工程

  • 将下面提到的framework和bundle资源添加到项目。

    1. PayEgisAuthentication.framework
    2. AipBase.framework
    3. IdcardQuality.framework
    4. IDLFaceSDK.framework
    5. PayEgisFace.framework
    6. PayegisDID.framework
    7. CWResource.bundle
    8. com.baidu.idl.face.faceSDK.bundle
    9. com.baidu.idl.face.model.bundle
    10. PayegisDID.bundle
  • 在Linked Frameworks and Libraries 添加以下库

    1. libsqlite3.0.tbd
    2. PayEgisAuthentication.framework
    3. AipBase.framework
    4. IdcardQuality.framework
    5. libstdc++.tbd
    6. CoreMedia.framework
    7. AVFoundation.framework
    8. Foundation.framework
    9. IDLFaceSDK.framework
    10. PayEgisFace.framework
    11. PayegisDID.framework

  • 在General-> Embeded Binaries 中添加:

  • 修改项目配置

    Other Link flags添加-ObjC


    info.plist 配置

    1. iOS 集成需要在 info.plist 文件中添加Privacy - Camera Usage Description字段,客户根据业务需求填写相关说明。
    2. iOS 集成需要在 info.plist 文件中添加Privacy - Microphone Usage Description字段,客户根据业务需求填写相关说明。
    3. iOS 集成需要在 info.plist 文件中添加Privacy - Photo Library Usage Description字段,客户根据业务需求填写相关说明。
    4. iOS 集成需要在 info.plist 文件中添加Privacy - Location When In Use Usage Description字段,客户根据业务需求填写相关说明。
    5. iOS 集成需要在 info.plist 文件中添加Privacy - Motion Usage Description字段,客户根据业务需求填写相关说明。
  • 在所需类中导入.h文件

#import <PayEgisAuthentication/MTUtil.h> #import <PayEgisAuthentication/PayEgisAuthentication.h> #import <PayEgisAuthentication/PayegisAuthSDK.h>

1.3 SDK初始化

方法名为:

- (void) initSDK : (NSMutableDictionary*)context completionBlock:(PayegisAuthInitCompletionBlock)completionBlock

参数说明:

参数名称 参数类型 描述 备注
context NSMutableDictionary 上下文 初始化参数

上下文参数说明

参数 参数类型 描述 备注
PayegisAuthSDKAppId NSString AppId 申请下发的id
PayegisAuthSDKAppKey NSString AppKey 申请下发的key
PayegisAuthSDKAppFaceName NSString Face_Name 应用名称(注册开户填写的应用名)

参考代码:

PayegisAuthSDK *_sdk = [PayegisAuthSDK shareInstance]; // OCR扫描界面是否支持选择图库图片 //_sdk.isShowAlbum = YES; // 首次是否弹出温馨提示 //_sdk.isHiddenAlert = YES; // 设置OCR返回结果是图片对象还是字典对象 // [_sdk setOCRCallBackImageType:NO]; NSMutableDictionary *context = [NSMutableDictionary dictionaryWithObjectsAndKeys: AppId,PayegisAuthSDKAppId,//必须 AppKey,PayegisAuthSDKAppKey,// 必须 Face_Name,PayegisAuthSDKAppFaceName,//必须 nil]; [_sdk initSDK:context completionBlock:^(NSError *error) { if (!error) { NSLog(@"初始化成功"); } }];

[danger] 注意

OCR扫描界面是否支持选择图库图片,通过isShowAlbum属性控制;

isHiddenAlert 标准化流程中首次使用弹出提示信息

setOCRCallBackImageType 设置OCR扫描返回结果的类型 YES 返回UIImage对象 NO 返回NSDictionary对象,包括裁剪图和原图

1.4 身份证OCR

先使用'openOCR'方法获取身份证正面和反面图像,然后调用'idOCROnly'方法,获取身份证相关信息

  • 身份证OCR扫描获取图片,v3.3.0版本中新增方法,可以无需退出扫描界面直接进行下一面的扫描。可以根据需求选择调用的方法,下面是两个方法的介绍和使用。

1.OCR 扫描(身份证单面扫描)

方法名称为:

- (void) openOCR:(PECardType) cardType completionBlock:(ImageOCRBlock) retunBlock

需要以下入参:

参数 参数类型 描述 备注
PECardType NS_ENUM 卡片类型 PECardType_ID_FRONT 身份证正面
PECardType_ID_BACK 身份证反面
PECardType_BANK 银行卡
PECardType_Other 其他类型卡片

参考代码:

WeakSelf(weakSelf) [_sdk openOCR:PECardType_ID_FRONT completionBlock:^(id returnObj) { if ([returnObj isKindOfClass:[NSDictionary class]] ) { NSDictionary *imageDic = (NSDictionary *) returnObj; if (imageDic.allKeys.count > 0) { // 裁剪过后的图 [weakSelf.idCardFrontImgV setImage:imageDic[@"image"]]; weakSelf.frontImg = imageDic[@"image"]; //原图 weakSelf.frontOriginImg = imageDic[@"orign"]; } }else{ if (returnObj != nil) { [weakSelf.idCardFrontImgV setImage:returnObj]; weakSelf.frontImg = returnObj; } } }];

2.OCR 扫描(身份证自动正反面扫描)

方法名称为:

- (void) openOCR:(PECardType) cardType idImgsDictinary:(NSDictionary *) idImgsDictinary completionBlock:(ImageOCROnceBlock) retunBlock

需要以下入参:

参数 参数类型 描述 备注
PECardType NS_ENUM 卡片类型 PECardType_ID_FRONT 身份证正面(先进行正面扫描)
PECardType_ID_BACK 身份证反面(先进行反面扫描)
idImgsDictinary NSDictionary 正反面图片 选填
front 身份证正面图片 back 身份证反面图片

参考代码:

WeakSelf(weakSelf) NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:self.frontImg?self.frontImg:@"",@"front",self.backImg,@"back", nil]; [_sdk openOCR:PECardType_ID_FRONT idImgsDictinary:dic completionBlock:^(id frontObj, id backObj) { if ([frontObj isKindOfClass:[NSDictionary class]] ) { NSDictionary *frontDic = (NSDictionary *) frontObj; if (frontDic.allKeys.count > 0) { [weakSelf.idCardFrontImgV setImage:frontDic[@"image"]]; weakSelf.frontImg = frontDic[@"image"]; // 原图 weakSelf.frontOriginImg = frontDic[@"orign"]; } NSDictionary *backDic = (NSDictionary *) backObj; if (backDic.allKeys.count > 0) { [weakSelf.idCardbackImgV setImage:backDic[@"image"]]; weakSelf.backImg = backDic[@"image"]; // 原图 weakSelf.backOriginImg = backDic[@"orign"]; } }else{ if (frontObj) { [weakSelf.idCardFrontImgV setImage:frontObj]; weakSelf.frontImg = frontObj; } if (backObj) { [weakSelf.idCardbackImgV setImage:backObj]; weakSelf.backImg = backObj; } } }];
  • 获取身份证相关信息

方法名称为:

- (void) idOCROnly:(UIImage *) frontImg backImg:(UIImage *) backImg completionBlock:(PayegisTokenAuthCompletionBlock) completionBlock

需要以下入参:

参数 参数类型 描述
frontImg UIImage 身份证正面
backImg UIImage 身份证反面

参考代码:

WeakSelf(weakSelf) [_sdk idOCROnly:self.idCardFrontImgV.image backImg:self.idCardbackImgV.image completionBlock:^(NSDictionary *result, NSError *error) { [weakSelf hideWaiting]; if (error) { NSString *string = [error.userInfo valueForKey:@"message"]?:[error.userInfo valueForKey:NSLocalizedDescriptionKey]; [weakSelf showError:string]; }else{ [weakSelf.nameView setInfoString:result[@"name"]]; [weakSelf.IDView setInfoString:result[@"cid"]]; [weakSelf.timeView setInfoString:[NSString stringWithFormat:@"%@-%@",result[@"validateFrom"],result[@"validateTo"]]]; } }];
  • result相关身份信息如下:
名称 类型 描述
name NSString 姓名
cid NSString 身份证号
sex NSString 性别
folk NSString 民族
birthday NSString 出生
address NSString 地址
authority NSString 发证机关
validateFrom NSString 有效期开始时间
validateTo String 有效期结束时间

1.5 银行卡OCR

先使用'openOCR'获取银行卡图片,然后调用'bankOCROnly'方法,获取银行卡相关信息。

  • 银行卡OCR扫描获取图片 方法名称为:
- (void) openOCR:(PECardType) cardType completionBlock:(ImageOCRBlock) retunBlock

需要以下入参:

参数 参数类型 描述 备注
PECardType NS_ENUM 卡片类型 PECardType_ID_FRONT 身份证正面
PECardType_ID_BACK 身份证反面
PECardType_BANK 银行卡
PECardType_Other 其他类型卡片

参考代码:

WeakSelf(weakSelf) [_sdk openOCR:PECardType_BANK completionBlock:^(id returnObj) { if ([returnObj isKindOfClass:[NSDictionary class]]) { NSDictionary *bankDic = (NSDictionary *) returnObj; if (bankDic.allKeys.count > 0) { [weakSelf.bankImgV setImage:bankDic[@"image"]]; weakSelf.bankCardImg = bankDic[@"image"]; // 原图 weakSelf.bankCardOriginImg = bankDic[@"orign"]; } }else{ if (returnObj == nil) { return; } weakSelf.bankCardImg = returnObj; [weakSelf.bankImgV setImage:returnObj]; } }];
  • 获取银行卡相关信息 方法名称为:
- (void) bankOCROnly:(UIImage *) bankImg completionBlock:(PayegisTokenAuthCompletionBlock) completionBlock

需要以下入参:

参数 参数类型 描述
bankImg UIImage 银行卡正面

参考代码:

WeakSelf(weakSelf) [_sdk bankOCROnly:self.bankImgV.image completionBlock:^(NSDictionary *result, NSError *error) { [weakSelf hideWaiting]; if (error) { NSString *string = [error.userInfo valueForKey:@"message"]?:[error.userInfo valueForKey:NSLocalizedDescriptionKey]; [weakSelf showError:string]; }else{ NSString *cardNO = [weakSelf subStringWithNumber:4 str:result[@"cardno"] padding:@" "]; [weakSelf.cardView setInfoString:cardNO]; [weakSelf.bankView setInfoString:result[@"bankname"]]; [weakSelf.typeView setInfoString:result[@"cardtype"]]; } }];
  • result相关银行信息如下:
名称 类型 描述
bankname NSString 发卡行
cardno NSString 银行卡号
cardtype NSString 卡类型

1.6 驾驶证OCR

先使用'openOCR'获取驾驶证图片,然后调用'drivingOCROnly'方法,获取驾驶证相关信息。

  • 驾驶证OCR扫描获取图片 方法名称为:
- (void) openOCR:(PECardType) cardType completionBlock:(ImageOCRBlock) retunBlock

需要以下入参:

参数 参数类型 描述 备注
PECardType NS_ENUM 卡片类型 PECardType_ID_FRONT 身份证正面
PECardType_ID_BACK 身份证反面
PECardType_BANK 银行卡
PECardType_Other 其他类型卡片

参考代码:

WeakSelf(weakSelf) [_sdk openOCR:PECardType_Other completionBlock:^(id returnObj) { if ([returnObj isKindOfClass:[NSDictionary class]]) { NSDictionary *bankDic = (NSDictionary *) returnObj; if (bankDic.allKeys.count > 0) { [weakSelf.contentIV setImage:bankDic[@"image"]]; weakSelf.contentImg = bankDic[@"image"]; } }else{ if (returnObj == nil) { return; } weakSelf.contentImg = returnObj; [weakSelf.contentIV setImage:returnObj]; } }];
  • 获取驾驶证相关信息 方法名称为:
- (void) drivingOCROnly:(UIImage *) contentImg completionBlock:(PayegisTokenAuthCompletionBlock) completionBlock

需要以下入参:

参数 参数类型 描述
contentImg UIImage 驾驶证图片

参考代码:

WeakSelf(weakSelf) [_sdk drivingOCROnly:self.contentImg completionBlock:^(NSDictionary *result, NSError *error) { [weakSelf hideWaiting]; if (error) { NSString *string = [error.userInfo valueForKey:@"message"]?:[error.userInfo valueForKey:NSLocalizedDescriptionKey]; [weakSelf showError:string]; }else{ // 处理结果 [weakSelf ocrOnDrivingLicenseSuccessful:result]; } }]; // 处理结果方法 - (void)ocrOnDrivingLicenseSuccessful:(id)result { NSLog(@"%@", result); NSMutableString *message = [NSMutableString string]; if(result){ [self.nameInfoView setInfoString:result[@"name"]]; [self.sexInfoView setInfoString:result[@"sex"]]; [self.bornInfoView setInfoString:result[@"birthday"]]; [self.countryInfoView setInfoString:result[@"nationality"]]; [self.addressInfoView setInfoString:result[@"address"]]; [self.driveTypeInfoView setInfoString:result[@"type"]]; [self.carNumInfoView setInfoString:result[@"certNo"]]; [self.startDateInfoView setInfoString:result[@"validateFrom"]]; [self.initialDateInfoView setInfoString:result[@"getCertTime"]]; if ([result[@"validateTo"] length]) { [self.effectiveDateInfoView setInfoString:[NSString stringWithFormat:@"%@至%@",result[@"validateTime"],result[@"validateTo"]]]; }else{ [self.effectiveDateInfoView setInfoString:result[@"validateTime"]]; } }else{ [message appendFormat:@"%@", result]; } }
  • result相关驾驶证信息如下:
名称 类型 描述
name NSString 姓名
sex NSString 性别
birthday NSString 出生日期
nationality NSString 国籍
address NSString 住址
type NSString 准驾车型
certNo NSString 证号
validateFrom NSString 有效起始日期
getCertTime NSString 初次领证日期
validateTime NSString 有效日期(如:6年,或者拼接validateTo形成时间区间)
validateTo NSString 有效日期截止时间

1.7 行驶证OCR

先使用'openOCR'获取行驶证图片,然后调用' vehicleOCROnly'方法,获取行驶证相关信息。

  • 行驶证OCR扫描获取图片 方法名称为:
- (void) openOCR:(PECardType) cardType completionBlock:(ImageOCRBlock) retunBlock

需要以下入参:

参数 参数类型 描述 备注
PECardType NS_ENUM 卡片类型 PECardType_ID_FRONT 身份证正面
PECardType_ID_BACK 身份证反面
PECardType_BANK 银行卡
PECardType_Other 其他类型卡片

参考代码:

WeakSelf(weakSelf) [_sdk openOCR:PECardType_Other completionBlock:^(id returnObj) { if ([returnObj isKindOfClass:[NSDictionary class]]) { NSDictionary *bankDic = (NSDictionary *) returnObj; if (bankDic.allKeys.count > 0) { [weakSelf.contentIV setImage:bankDic[@"image"]]; weakSelf.contentImg = bankDic[@"image"]; } }else{ if (returnObj == nil) { return; } weakSelf.contentImg = returnObj; [weakSelf.contentIV setImage:returnObj]; } }];
  • 获取行驶证相关信息 方法名称为:
- (void) vehicleOCROnly:(UIImage *) contentImg completionBlock:(PayegisTokenAuthCompletionBlock) completionBlock

需要以下入参:

参数 参数类型 描述
contentImg UIImage 行驶证图片

参考代码:

WeakSelf(weakSelf) [_sdk vehicleOCROnly:self.contentImg completionBlock:^(NSDictionary *result, NSError *error) { [weakSelf hideWaiting]; if (error) { NSString *string = [error.userInfo valueForKey:@"message"]?:[error.userInfo valueForKey:NSLocalizedDescriptionKey]; [weakSelf showError:string]; }else{ [weakSelf ocrOnVehicleLicenseSuccessful:result]; } }]; // 处理结果方法 - (void)ocrOnVehicleLicenseSuccessful:(id)result { NSLog(@"%@", result); NSMutableString *message = [NSMutableString string]; if(result){ [self.nameInfoView setInfoString:result[@"name"]]; [self.addressInfoView setInfoString:result[@"address"]]; [self.brandTyhpeInfoView setInfoString:result[@"brand"]]; [self.carTypeInfoView setInfoString:result[@"carType"]]; [self.numberInfoView setInfoString:result[@"plate"]]; [self.engineNumInfoView setInfoString:result[@"engine"]]; [self.useInfoView setInfoString:result[@"useType"]]; [self.registDateInfoView setInfoString:result[@"registerDate"]]; [self.issueDateInfoView setInfoString:result[@"certDate"]]; [self.idCodeInfoView setInfoString:result[@"nickNo"]]; }else{ [message appendFormat:@"%@", result]; } } }
  • result相关行驶证信息如下:
名称 类型 描述
name NSString 所有人
address NSString 住址
brand NSString 品牌型号
carType NSString 车辆类型
plate NSString 号牌号码
engine NSString 发动机号码
useType NSString 使用性质
registerDate NSString 注册日期
certDate NSString 发证日期
nickNo NSString 车辆识别代码

1.8 活体检测

活体检测分为两个接口: 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.9 指纹识别

  SDK Pro中封装了系统指纹识别,使用了PKI(Public Key Infrastructure)技术来保证指纹识别信息传输的机密性和完整性。

方法名称为:

- (void)peTouchIDWithMessage:(NSString *)message fallbackTitle:(NSString *)fallbackTitle completeBlock:(void (^)(NSError *error)) completeBlock

参数说明:

参数 参数类型 描述 备注
message NSString Touch ID 提示语
fallbackTitle NSString 用于设置左边的按钮的名称,默认为空不显示
account NSString 账号 (不能含有中文和特殊字符)
businessID NSString 业务标志 建议随机产生,确保每次不一样 不能含有中文和特殊字符
completeBlock Block 指纹识别的回调处理 回调参数error,error 为空表示Touch ID 成功,error 不为空,错误码与系统相同,具体说明如下

错误码说明:

错误码 描述
LAErrorAuthenticationFailed 验证信息出错,就是说你指纹不对
LAErrorUserCancel 用户取消了验证
LAErrorUserFallback 用户点击了手动输入密码的按钮,所以被取消了
LAErrorSystemCancel 被系统取消,就是说你现在进入别的应用了,不在刚刚那个页面,所以没法验证
LAErrorPasscodeNotSet 密码在设备上没有设置
LAErrorTouchIDNotAvailable 设备不支持TouchID
LAErrorTouchIDNotEnrolled 设备没有设置手指指纹
LAErrorTouchIDLockout 用户错误次数太多,现在被锁住了
LAErrorAppCancel 在验证中被其他app中断
LAErrorInvalidContext 授权过程中,LAContext对象被释放掉了,造成的授权失败
-101 其他错误

参考代码:

[_sdk peTouchIDWithMessage:@"远程实名认证需要验证TouchID" fallbackTitle:@"" account:@"account" businessID:@"businessID" completeBlock:^(NSError *error) { if (error == nil) { NSDate *date = [NSDate new]; self.showDescLabel.text = [NSString stringWithFormat: @"Touch ID验证成功--%ld",(long)[date timeIntervalSince1970]]; }else{ self.showDescLabel.text = [error.userInfo objectForKey:NSLocalizedDescriptionKey]; } }];

2.0 远程身份认证(不含银行卡认证)

方法名称为:

- (void) startIDCardTokenAuthToken :(NSString *) token CompletionBlock : (PayegisTokenAuthCompletionBlock) completionBlock

参数说明:

参数 参数类型 描述 备注
Token NSString 事务号 身份证认证流程事务号

参考代码:

[_sdk startIDCardTokenAuthToken:self.authCode CompletionBlock:^(NSDictionary *result, NSError *error) { if (error) { RAResultViewController * resultVC = [[RAResultViewController alloc]init]; resultVC.token = self.authCode; UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:resultVC]; [self presentViewController:nav animated:YES completion:nil]; }else{ RAResultViewController * resultVC = [[RAResultViewController alloc]init]; resultVC.token = self.authCode; UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:resultVC]; [self presentViewController:nav animated:YES completion:nil]; } }];

2.1 远程身份银行卡认证(含银行卡认证)

  远程身份银行卡认证分为三要素认证和四要素认证,两者区别是四要素认证会校验手机号。三要素和四要素认证通过txntype参数来获取不同的事务号。

参数说明:

参数 参数类型 描述 备注
txntype NSString 事务号类型 NAME_ID_BANKCARD:身份证银行卡(三要素)
NAME_ID_BANKCARD_PHONE:身份证银行卡(四要素)

方法名称为:

- (void) startBankCardTokenAuthToken:(NSString *)token CompletionBlock : (PayegisTokenAuthCompletionBlock) completionBlock

参数说明:

参数 参数类型 描述 备注
Token NSString 事务号 银行卡认证流程事务号

参考代码:

[_sdk startBankCardTokenAuthToken:self.authCode CompletionBlock:^(NSDictionary *result, NSError *error) { if (error) { RAResultViewController * resultVC = [[RAResultViewController alloc]init]; resultVC.token = self.authCode; UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:resultVC]; [self presentViewController:nav animated:YES completion:nil]; }else{ RAResultViewController * resultVC = [[RAResultViewController alloc]init]; resultVC.token = self.authCode; UINavigationController * nav = [[UINavigationController alloc]initWithRootViewController:resultVC]; [self presentViewController:nav animated:YES completion:nil]; } }];

2.2 自定义UI

远程实名认证SDK(V3.3.0以上)提供了以下方法来进行UI的自定义,具体介绍如下

2.2.1 自定义导航条(UINavigationBar)

通过调用- (void) setNavagatinStyleBlock:(PENavigatonVCStyleBlock) block方法可以设置导航栏的文字颜色、字体大小、背景图片和返回按钮的设置。通过setBarTintColor方法来设置导航栏的颜色无效。

方法名称为:

- (void) setNavagatinStyleBlock:(PENavigatonVCStyleBlock) block;

参考代码:

[_sdk setNavagatinStyleBlock:^(UINavigationController *nav) { // 设置文字的颜色 [nav.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:21]}]; // 设置导航条背景图片 [nav.navigationBar setBackgroundImage:[ViewController imageWithColor:[UIColor purpleColor] size:CGSizeMake(1, 1)] forBarMetrics:UIBarMetricsDefault]; // 设置返回按钮 UIImage *backButtonImage = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 25, 0, 0)]; UIViewController *vc = [[nav viewControllers] objectAtIndex:0]; UIButton *button = (UIButton *) vc.navigationItem.leftBarButtonItem.customView ; [button setImage:backButtonImage forState:UIControlStateNormal]; }];
2.2.2 自定义按钮

通过调用- (void) setCustomButton:(NSDictionary *) dictinoary;方法可以设置部分按钮的文字颜色和背景颜色。

方法名称为:

- (void) setCustomButton:(NSDictionary *) dictinoary;

参数说明:

参数 参数类型 描述 备注
dictinoary NSDictionary UIButton相关属性 ThemeButtonColor背景颜色
ThemeButtonTintColor文字颜色

参考代码:

NSMutableDictionary *themecontext = [NSMutableDictionary dictionaryWithObjectsAndKeys: [UIColor purpleColor],ThemeButtonColor, [UIColor brownColor],ThemeButtonTintColor, nil]; [_sdk setCustomButton:themecontext];
2.2.3 自定义活体检测页面

通过PayEgisFace.framework的PayegisFaceSDK.h提供的- (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]; [[PayegisFaceSDK shareInstance] setFaceLivessTheme: faceDictinoary];

results matching ""

    No results matching ""

    results matching ""

      No results matching ""