天天看点

指纹识别和人脸识别

一、指纹识别

1、指纹识别介绍

iPhone 5S 开始有了指纹识别功能

ios8.0开始,苹果开放了指纹识别的验证接口:LocalAuthentication

2、调用机制

连续给3次机会,3次以后,会提示剩余2次机会、密码登录、取消指纹验证

5次输入错误,指纹识别弹框消失

指纹识别和人脸识别

第2次调用指纹识别,如上逻辑,若还未验证通过,需要锁屏启用指纹识别

3、贴上代码

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //1、判断系统版本
    if ([UIDevice currentDevice].systemVersion.floatValue >= ) {

        // 可以使用指纹识别  -> 5s以后机型
        //2、判断机型是否支持指纹识别

        //2.1、创建LA对象上下文
        LAContext *context = [[LAContext alloc] init];

        //2.2、判断能否使用
        /**
         @param LAPolicy 评估
         @return 策略
         */
        if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
            //可以使用

            //3、开启使用指纹识别
            /**
             @param LAPolicy 可以使用指纹识别策略
             @param localizedReason 提示用户的信息
             */
            [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"请把你的鸡爪放在home键上验证指纹" reply:^(BOOL success, NSError * _Nullable error) {

                //判断是否成功
                if (success) {

                    NSLog(@"验证成功");
                    dispatch_sync(dispatch_get_main_queue(), ^{

                        //在主线程中更新UI

                    });

                } else {
                    NSLog(@"验证失败");
                }

                if (error) {
                    switch (error.code) {
                        case -:
                            NSLog(@"超出验证次数限制,提示锁屏,重新验证!");
                            break;

                        case -:
                            NSLog(@"用户点击了取消指纹验证");
                            break;
                        case -:
                            NSLog(@"点击了密码登录");
                            break;
                        case -:
                            NSLog(@"锁屏功能被锁定,请锁屏手机,密码登录启用指纹识别!");
                            break;
                        default:
                            break;
                    }
                }

            }];

        } else {

            NSLog(@"对不起,5s以上机型才可以使用该功能");
        }

    } else {
        NSLog(@"系统版本过低,无法使用指纹识别!");
    }
}
           

二、人脸识别