iOS 端慧眼 SDK 主要涉及的类主要包含 HuiYanAuthSDKKit、AuthConfig,下面对其支持的 API 做出详细说明。
HuiYanAuthSDKKit
HuiYanAuthSDKKit 为慧眼 SDK 的对外接口类,主要逻辑也都是调用此类完成。
API | 功能描述 |
获取 SDK 实例 | |
资源释放接口 | |
设置主动获取客户 FaceIdToken 的接口(即将弃用) | |
启动活体核身检测的接口 | |
设置关键流程的回调信息的回调监听 |
sharedInstance;
/// 获取SDK实例+ (nonnull instancetype)sharedInstance;
功能介绍:慧眼 SDK 获取 SDK 实例。
clearInstance;
/// 清理SDK资源+ (void)clearInstance;
功能介绍:慧眼 SDK 释放 Instance 的接口。
setFaceIdTokenCreateFunction:
/// 设置 FaceIdToken///@param onFaceIdTokenCreateFunction 获取FaceIdToken block- (int)setFaceIdTokenCreateFunction:(FaceIdTokenCreateFunction _Nonnull)onFaceIdTokenCreateFunction;
功能介绍:设置主动获取客户 FaceIdToken 的接口。即将弃用该接口,建议设置 AuthConfig 中 token 字段。
传入参数:
参数类型 | 参数名称 | 参数含义 |
FaceIdTokenCreateFunction | 主动获取客户 FaceIdToken 的回调 |
startHuiYanAuth:
/// 启动SDK模块,运行带有UI界面的功能识别模块/// @note 请在View加载完毕后调用该接口/// @param authConfig SDK需要运行的配置/// @param onProcessSucceed 识别成功回调/// @param onProcessFailed 识别失败回调- (void)startHuiYanAuthWithAuthConfig:(AuthConfig * _Nonnull)authConfigwithProcessSucceedBlock:(TXYSDKKitProcessSucceedBlock _Nonnull)onProcessSucceedwithProcessFailedBlock:(TXYSDKKitProcessFailedBlock _Nonnull)onProcessFailed;
功能介绍:启动活体核身检测的接口。
传入参数:
参数类型 | 参数名称 | 参数含义 |
authConfig | 启动活体核身的参数配置 | |
onProcessSucceed | SDKKIt处理成功回调接口 | |
onProcessFailed | SDKKIt处理失败回调接口 |
sendMainPublicEventListenerBlock
/// 设置关键流程的回调信息的监听(回调在子线程,不要直接出来UI事件)-(void) sendMainPublicEventListenerBlock:(TXYHuiYanPublicEventCallBackBlock _Nonnull) publicEventCallBack;
功能介绍:设置关键流程的回调信息的监听(回调在子线程,不要直接出来 UI 事件)
传入参数:
参数类型 | 参数名称 | 参数含义 |
publicEventCallBack | 处理回调信息的Block |
AuthConfig
AuthConfig 是在启动慧眼 SDK 时的配置实体类,主要包含了以下属性。
类型 | 名称 | 含义 | 默认值 |
NSString | licensePath | 客户申请的用户核审授权的License文件路径 | 空 |
NSString | faceTrackerPath | 设置face-tracker-v003.bundle文件路径 | 空 |
NSString | token | 客户获取到的FaceIdToken | 空 |
customerConfig | 客户自定义配置信息 | 空 |
CustomerConfig
AuthConfig 是在启动慧眼 SDK 时的配置实体类,主要包含了以下属性。
类型 | 名称 | 含义 | 默认值 |
TXYHuiYanEventDelegate | delegate | 事件回调 | 空 |
NSString | authTips | 核身时的提示信息(不超过100字符) | 空 |
UIColor | authTipsTxtColor | 提示信息文字颜色 | 空 |
UIColor | noteTipsErrorTextColor | 核身错误文字颜色,默认红色 | 内部默认色 |
BOOL | isHiddenResultPage | 是否隐藏核身结果页 | NO |
BOOL | isHiddenProtocolPage | 是否隐藏协议展示页 | NO |
BOOL | isHiddenInnerDialog | 是否隐藏内部弹窗 | NO |
long | authTimeoutMs | 设置活体超时时间 | 10000 |
BOOL | isLiveDataEncrypt | 是否对活体数据加密 | NO |
long | prepareTimeoutMs | 准备阶段倒计时 | 15000 |
long | actionTimeoutMs | 动作倒计时 | 15000 |
BOOL | isHiddenTimeoutLabel | 是否隐藏倒计时 | NO |
BOOL | isHiddenLoadingPage | 是否隐藏Loading | NO |
BOOL | isCancelBtnRight | 是否取消按钮靠右侧 | NO |
NSString | prepareImageViewDrawable | 默认图替换 | nil |
NSString | userLanguageFileName | 自定义语言bundle名 | nil |
NSString | userUIBundleName | 自定义语言UI的bundle名 | nil |
NSString | userLanguageBundleName | 设置自定义语言包名 如:en.lproj | nil |
languageType | 设置语言模式 | HY_DEFAULT | |
BOOL | needLog | 是否开启debug日志,默认打开 | YES |
UIColor | authCircleErrorColor | 动作错背景圆框的颜色 | rgbhex 值0xFF584C |
UIColor | authCircleCorrectColor | 动作正确时背景圆框的颜色 | rgbhex值0x29CC85 |
UIColor | authLayoutBgColor | 核身界面背景颜色 | rgbhex值0xFF584C |
CGFloat | feedBackTxtSize | 提示文字大小 | |
NSString | huiyanUIBundlePath | 外部设置 HuiYanUIBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义 UI 时必填) | nil |
NSString | userUIBundlePath | 设置 UserUIBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义 UI 时必填) | nil |
NSString | languageBundlePath | 设置 LanuageSrcBundle.bundle 的路径(当该文件不在 mainBundle 中时需要设置,使用自定义多语言时必填) | nil |
TXYHuiYanEventDelegate
用于返回宿主层当前事件。
@protocol TXYHuiYanEventDelegate <NSObject>- (void)onStartLoading;// 已完成核身正在请求loading中- (void)onStopLoading;// 请求完毕结束loading@end
HY_LanguageType
用于设置 SDK 中语言模式,其中若设置 HY_CUSTOMIZE_LANGUAGE 则会读取 userLanguageBundleName 字段。
typedef enum : NSUInteger {HY_DEFAULT = 0,//跟随系统设置HY_ZH_HANS,//中文简体HY_EN,//英文HY_CUSTOMIZE_LANGUAGE //定制语言} HY_LanguageType;
FaceIdTokenCreateFunction
用于提供给客户使用的获取 FaceIdToken 的接口类,客户需要返回客户获取到的 FaceIdToken 的值。即将弃用,建议使用 AuthConfig中token 来设置。
/// 用户设置主动刷新 返回FaceIDTokentypedef NSString *_Nullable(^FaceIdTokenCreateFunction)(void);//设置FaceIdToken[[HuiYanSDKKit sharedInstance] setFaceIdTokenCreateFunction:^NSString *{return faceIdToken;}];
TXYSDKKitProcessSucceedBlock
用于接受活体核身认证的结果成功监听 block。
/// SDKKIt处理成功回调接口/// @param resultInfo 核身成功/// @param retFaceidToken 返回FaceIdTokentypedef void (^TXYSDKKitProcessSucceedBlock)(id _Nonnull resultInfo, id _Nullable retFaceidToken);
TXYSDKKitProcessFailedBlock
用于接受活体核身认证的结果失败监听 block。
/// SDKKIt处理失败回调接口/// @param error 处理过程中触发的异常错误/// @param retFaceidToken 返回FaceIdTokentypedef void (^TXYSDKKitProcessFailedBlock)(NSError *_Nonnull error, id _Nullable retFaceidToken);
TXYHuiYanPublicEventCallBackBlock
/// SDK的内部主要流程的事件监听(在子线程中回调,不要直接进行UI操作)/// @param publicEvent 流程里的关键事件信息typedef void (^TXYHuiYanPublicEventCallBackBlock)(HuiYanPublicEvent publicEvent);
HuiYanPublicEvent
公有云回调关键事件的枚举。
// HuiYanPublicEvent 公有云特殊的事件typedef enum : NSUInteger {// 启动拉取光线序列GET_LIVE_TYPE_HUIYAN,// 本地识别开始START_CHECK_HUIYAN,// 本地识别结束准备开启网络请求LOCAL_CHECK_OVER_HUIYAN,// 得到网络请求结果,并且需要结果为success才会回调GET_NET_RESULT_HUIYAN,} HuiYanPublicEvent;
错误码
错误码 | 错误码值 | 错误码含义 |
HY_CAMERA_OPEN_FAIL | 217 | 相机开启失败 |
HY_SDK_VEDIO_CUT_EXCEPTION | 220 | 视频裁剪失败 |
HY_LIGHT_DATA_FORMAT_EXCEPTION | 221 | 光线数据格式错误 |
HY_DETECT_TIMEOUT | 222 | 动作检测超时 |
HY_CAMEREA_PERMISSION_EXCEPTION | 219 | 摄像头权限异常 |
HY_NETWORK_ERROR | 272 | 网络请求出现异常 |
HY_LOCAL_REF_FAILED_ERROR | 273 | 本地初始化 SDK 时,本地检测失败,常见异常不存在 license 文件或者 license 过期 |
HY_USER_CANCEL_ERROR | 274 | 用户主动取消核身流程 |
HY_INNER_ERROR_CODE | 275 | SDK 内部产生的异常,终止了核身流程 |
HY_DO_NOT_CHANGE_ERROR | 276 | 在核身过程中切换应用发生终止流程的异常 |
HY_CAMEREA_PERMISSION_ERROR | 277 | 获取摄像头过程中发生异常 |
HY_INIT_SDK_ERROR | 278 | 未调用 init()方法,直接调用了启动检测 |
HY_VERIFY_LOCAL_ERROR | 279 | 本地人脸检测失败 |
HY_SDK_VEDIO_CUT_ERR | 282 | 本地合身视频采集失败 |
HY_SDK_TURING_TOKEN_GET_ERR | 283 | 设备风险模块调用失败 |
HY_SDK_CRASH_ERR | 284 | crash |
HY_SDK_INIT_MODEL_ERROR | 285 | 初始化模型失败 |
HY_PREPARE_TIMEOUT | 300 | 准备阶段超时 |
HY_LONGCHECK_TIMEOUT | 301 | 耗时检测超时 |