iOS 指纹识别

项目需要用到指纹识别,我把关键部分拿出来,代码如下:

  1. 引入头文件
#import <LocalAuthentication/LocalAuthentication.h>
  1. 指纹识别代码
-(void)test
{
    LAContext *context = [[LAContext alloc] init];
    NSError *error = nil;
    NSString *reason = @"我们需要验证您的指纹来确认您的身份";
    // 判断设置是否支持指纹识别
    if([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error])
    {
        // 指纹识别只判断当前用户是否是机主
        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:reason reply:^(BOOL success, NSError * _Nullable error) {
            if(success)
            {
                NSLog(@"指纹认证成功");
            }
            else
            {
                NSLog(@"指纹认证失败");
                NSLog(@"错误码:%zd",error.code);
                NSLog(@"出错信息:%@",error);
                // 错误码 error.code
                // -1: 连续三次指纹识别错误
                // -2: 在TouchID对话框中点击了取消按钮
                // -3: 在TouchID对话框中点击了输入密码按钮
                // -4: TouchID对话框被系统取消,例如按下Home或者电源键
                // -8: 连续五次指纹识别错误,TouchID功能被锁定,下一次需要输入系统密码
            }
        }];
    }
    else
    {
        NSLog(@"TouchID设备不可用");
        NSLog(@"错误码:%zd",error.code);
        NSLog(@"出错信息:%@",error);
    }
}

调用test方法,就可以看到app要求识别指纹的界面

要求指纹识别.PNG

如果识别失败就会要求重新试一次
识别失败.PNG

惯例把Demo上传gitHub

推荐阅读更多精彩内容