指纹识别

本文介绍如何在iOS 8及以上版本中实现指纹识别功能,包括判断系统版本、检查设备是否支持指纹识别、设置指纹验证提示及处理验证结果等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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);

                }



            }];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值