iOS 8.0 & iPhone5s以后 苹果开发了touchID ,开发者能够使用指纹识别
首先倒入头文件
#import <LocalAuthentication/LocalAuthentication.h>
点进去能看到两个头文件 分别是:
#import <LocalAuthentication/LAContext.h>
#import <LocalAuthentication/LAError.h>
显而易见,指纹识别是操作LAContext,并且提供了一个LAError进行错误处理
LAContext :
两个枚举值
LAPolicyDeviceOwnerAuthenticationWithBiometrics //生物识别技术
LAPolicyDeviceOwnerAuthentication。 //设备识别
第一个枚举值就是专门用来做指纹识别的
第二个同第一个有一点不一样的地方,就是,三次指纹错误后,自动弹出输入设备密码的界面,咱们主要讲第一个
除了两个枚举值,还有两个方法
//判断是否能够进行指纹识别
- (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * __autoreleasing *)error
//进行指纹识别
- (void)evaluatePolicy:(LAPolicy)policy//要进行什么类型的指纹识别一般选择生物指纹识别
localizedReason:(NSString *)localizedReason //识别指纹要展示的文字,比如 指纹支付
reply:(void(^)(BOOL success, NSError * __nullable error))reply; //回调的block
如果指纹验证成功,success就会返回YES,失败则返回NO
不过需要注意,如果我们在验证指纹的过程中点击输入密码,则直接返回error,这个时候我们就需要对error进行处理
LAError:
LAErrorAuthenticationFailed, // 验证信息出错,指纹信息不对
LAErrorUserCancel // 用户手动取消了验证
LAErrorUserFallback // 用户点击了手动输入密码的按钮,所以被取消了
LAErrorSystemCancel // 被系统取消,就是说你现在进入别的应用了,不在刚刚那个页面,所以没法验证
LAErrorPasscodeNotSet // 用户没有设置密码,所以无法启动指纹验证
TouchID LAErrorTouchIDNotAvailable // 用户设备不支持TouchID 也就是iPhone5s之前的设备不支持
LAErrorTouchIDNotEnrolled // 用户没有设置手指指纹
LAErrorTouchIDLockout // 用户错误次数太多,设备被锁住多少分钟
LAErrorAppCancel // 用户不可抗力的因素导致app挂起,比如电话
LAErrorInvalidContext // 请求验证出错
网友评论