//判断版本
if (NSFoundationVersionNumber < NSFoundationVersionNumber_iOS_8_0) {
NSLog(@"系统不支持TouchID");
}
LAContext *context = [[LAContext alloc]init];
// 这个属性是设置指纹输入失败之后的弹出框的选项
context.localizedFallbackTitle = @"忘记密码";
NSString *myLocalizedFallbackTitle = @"请按住Home键完成验证";
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]) {
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:myLocalizedFallbackTitle reply:^(BOOL success, NSError * _Nullable error) {
if (success) {
NSLog(@"识别成功的操作");
}else{
switch (error.code) {
case LAErrorAuthenticationFailed:
NSLog(@"授权失败");
break;
case LAErrorUserCancel:
NSLog(@"用户取消验证Touch ID");
break;
case LAErrorUserFallback:
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"用户选择输入密码,切换主线程处理"); // -3 在TouchID对话框中点击了输入密码按钮
}];
break;
case LAErrorSystemCancel:
NSLog(@"取消授权,如其他应用切入,用户自主");
break;
case LAErrorPasscodeNotSet:
NSLog(@"设备系统未设置密码");
break;
case kLAErrorTouchIDNotAvailable:
NSLog(@"设备未设置Touch ID");
break;
case LAErrorTouchIDNotEnrolled:
NSLog(@"用户未录入指纹");
break;
case LAErrorTouchIDLockout:
NSLog(@"Touch ID被锁,需要用户输入密码解锁");
break;
case LAErrorAppCancel:
NSLog(@"用户不能控制情况下APP被挂起");
break;
case LAErrorInvalidContext:
NSLog(@"LAContext传递给这个调用之前已经失效");
break;
default:
break;
}
}
}];
}