iOS 使用touchID和FaceID操作

 

//判断版本

    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;

               }

           }

       }];

    }

你可能感兴趣的:(iOS,touchID,指纹,iOS)