iOS 指纹识别

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 // 请求验证出错

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 指纹识别: iPhone5S开始,推出指纹识别 iOS8.0之后苹果允许第三方 App 使用 Touch ID进行...
    a437e8f87a81阅读 1,463评论 0 17
  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 3,200评论 0 18
  • 项目需要用到指纹识别,我把关键部分拿出来,代码如下: 引入头文件 指纹识别代码 调用test方法,就可以看到app...
    Hardy_Hu阅读 615评论 2 3
  • 沈进阅读 218评论 3 1
  • 毛姆在《人生的枷锁》里面,假借于一位潦倒的智者,表达了这样的一种哲学观点,“人生就好比是一张波斯挂毯,华丽美观,但...
    畏虎不语阅读 1,483评论 0 2

友情链接更多精彩内容