指纹识别

  1. iphone 5s 以后推出指纹识别
  2. iOS8.0开放指纹识别

引入系统头文件

#import <LocalAuthentication/LocalAuthentication.h>

1. 判断版本

 //1.判断版本
    if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
        
        //可以使用指纹识别 5S 以后的机型
  }

2. 判断是否可以使用指纹识别功能


        if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil] ) {
        
        }else{
         NSLog(@"sorry!");
        }

Policy两个参数解析

LAPolicyDeviceOwnerAuthenticationWithBiometrics : 生物指纹识别。验证弹框有两个按钮,第一个是取消按钮,第二个按钮可以自定义标题名称(输入密码)。只有在第一次指纹验证失败后才会出现第二个按钮,这种鉴定方式的第二个按钮的功能自定义。前三次指纹验证失败,指纹验证框不再弹出。再次重新进入验证,还有两次验证机会,如果还是验证失败,TOUCH ID 被锁住不再继续弹出指纹验证框。以后的每次验证都将会弹出设备密码输入框直至输入正确的设备密码方可解除TOUCH ID锁。

一般用这个


LAPolicyDeviceOwnerAuthentication: 生物指纹识别或系统密码验证。如果TOUCH ID 可用,且已经录入指纹,则优先调用指纹验证。其次是调用系统密码验证,如果没有开启设备密码,则不可以使用这种验证方式。指纹识别验证失败三次将弹出设备密码输入框,如果不进行密码输入。再次进来还可以有两次机会验证指纹,如果都失败则TOUCH ID被锁住,以后每次进来验证都是调用系统的设备密码直至输入正确的设备密码方可解除TOUCH ID锁。

3. 开始启用指纹识别

  //3.开始启用指纹识别
            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请验证指纹,以开启高级功能" reply:^(BOOL success, NSError * _Nullable error) {
                
               //判断是否成功
                if (success) {
                    NSLog(@"验证成功!");
                    
          //验证成功,主线程处理UI 因为指纹识别是在分线程里进行          dispatch_sync(dispatch_get_main_queue(), ^{
                        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"标题" message:@"你成功了" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil];
                        
                        [alert show];
                    });
                    
                    
                    
                }else if(error != nil)
                {
                 /*
                 LAErrorAuthenticationFailed - 指纹无法识别
                  LAErrorUserCancel     --用户点击了取消
                  LAErrorUserFallback   --用户点击了输入密码
                  LAErrorSystemCancel   --系统取消
                  LAErrorPasscodeNotSet --因为你设备上没有设置密码
                  LAErrorTouchIDNotAvailable  --设备没有Touch ID
                  LAErrorTouchIDNotEnrolled   --因为你的用户没有输入指纹
                  LAErrorTouchIDLockout --多次输入,密码锁定
                  LAErrorAppCancel--    比如电话进入,用户不可控的
                 */
                    NSLog(@"error:%@",error);
                    
                }
                
            
                
            }];
            
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简述: 在类似支付宝为首的应用以及各种理财等涉及钱财对安全性要求较高的应用中,目前普遍对关键数据都做了安全访问限制...
    C_HPY阅读 8,259评论 0 18
  • 简介 苹果从iPhone5S开始,具有指纹识别技术,从iOS8.0之后苹果允许第三方 App 使用 Touch I...
    z4ywzrq阅读 11,635评论 10 75
  • iOS 8 SDK向开发者公开了Touch ID指纹识别功能,允许App对用户身份进行本地验证。使用TouchID...
    走在路上的小二阅读 4,572评论 0 4
  • 自iPhone 5S始,苹果公司推出了全新生物安全识别技术---指纹识别验证(Touch ID)。使得我们可以更快...
    mrChan1234阅读 5,107评论 0 0
  • 一生就是两件事 一件喜欢 一件释怀 喜欢的会慢慢藏起 释怀的一点点放下
    歩惊云阅读 1,148评论 1 2

友情链接更多精彩内容