Touch ID

}

  • (void)authentication{

    LAContext * zrContext = [[LAContext alloc] init];
    NSError * authError = nil;
    //授权原因
    NSString * zrReason = @"我需要授权";
    //if条件判断设备是否支持Touch
    //ID 是否开启Touch id等这个一定要写上(曾经3D
    //Touch使用的时候没判断导致iOS9以后的系统启动app就崩溃)

    if ([zrContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {

      [zrContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:zrReason reply:^(BOOL success, NSError * _Nullable error) {
          
          if (success) {
              
              
          }else{
          
              switch (error.code) {
                  case LAErrorAuthenticationFailed:
                       NSLog(@"用户提供的指纹不对");
                      break;
                  case LAErrorUserCancel:
                      NSLog(@"用户点击了取消按钮");
    
                      break;
                  case LAErrorUserFallback:
                      NSLog(@"用户选择输入密码");
    
                      break;
                  case LAErrorSystemCancel:
                      NSLog(@"切换到其他的app(按了Home按键),被系统取消");
    
                      break;
                  case LAErrorTouchIDLockout:
                      NSLog(@"用户指纹错误多次,TOuch ID 被锁定");
                      break;
                      //9.0我试了验证过程中电话进来返回的LAErrorSystemCancel错误码不是这个
                  case LAErrorAppCancel:
                      NSLog(@"被(突如其来的)应用(电话)取消");
    
                      break;
                      
                  default:
                      break;
              }
          
          
          
          }
          
          
      }];
    

    }else{

      switch (authError.code) {
              //9.0  试过了不设置密码返回的是 LAErrorTouchIDNotEnrolled   错误码
          case LAErrorPasscodeNotSet:
              NSLog(@"在设置里面没有设置密码");
    
              break;
              case LAErrorTouchIDNotAvailable:
              NSLog(@"设备不支持Touch  ID");
              break;
              case LAErrorTouchIDNotEnrolled:
              NSLog(@"在设置里面没有设置Touch Id 指纹");
              break;
              
              case LAErrorInvalidContext:
              NSLog(@"创建的指纹对象失效");
              break;
              
              
          default:
              break;
      }
    

    }

}

你可能感兴趣的:(Touch ID)