iOS指纹识别

来源:互联网 发布:tcp ip网络协议分析 编辑:程序博客网 时间:2024/04/30 11:19

iOS指纹识别比较简单,主要由LAContontext类中的两种方法完成:
1. - (BOOL)canEvaluatePolicy:(LAPolicy)policy error:(NSError * autoreleasing *)error __attribute((swift_error(none))) 检测设备是否支持指纹识别;
2. - (void)evaluatePolicy:(LAPolicy)policy
localizedReason:(NSString *)localizedReason
reply:(void(^)(BOOL success, NSError * __nullable error))reply 识别指纹

代码:

LAContext *context = [LAContext new];    context.localizedCancelTitle = @"取消";    context.localizedFallbackTitle = @"密码登录";    NSError *error = nil;    BOOL supportFingerPrint = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];    if (!supportFingerPrint) {        NSLog(@"不支持指纹解锁:%@",error.localizedDescription);        switch (error.code) {            case LAErrorTouchIDNotEnrolled:                NSLog(@"TouchID Not Enrolled");                break;            case LAErrorPasscodeNotSet:                NSLog(@"Password Not Set");                break;            default:                NSLog(@"TouchID Not Available");                break;        }    } else {        NSLog(@"支持指纹解锁");        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"指纹解锁" reply:^(BOOL success, NSError * _Nullable error) {            if(success) {                NSLog(@"指纹解锁成功");            } else {                switch (error.code) {                    case LAErrorAuthenticationFailed: {                        NSLog(@"Authentication Failed");                    }                        break;                    case LAErrorUserCancel: {                        NSLog(@"User Canceled");                    }                        break;                    case LAErrorUserFallback: {                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{                            NSLog(@"User Fallback");                        }];                    }                        break;                    case LAErrorSystemCancel: {                        NSLog(@"System Cancel");                    }                        break;                    case LAErrorPasscodeNotSet: {                        NSLog(@"Password Not Set");                    }                        break;                    case LAErrorTouchIDNotAvailable: {                        NSLog(@"TouchID Not Available");                    }                        break;                    case LAErrorTouchIDNotEnrolled: {                        NSLog(@"TouchID Not Enrolled");                    }                    default: {                        [[NSOperationQueue mainQueue] addOperationWithBlock:^{                            NSLog(@"Other Targat ");                        }];                    }                        break;                }            }        }];    }
0 0
原创粉丝点击