Touch ID

作者: 爱喝农药de清凉 | 来源:发表于2017-10-03 19:38 被阅读7次

    }

    • (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

          本文链接:https://www.haomeiwen.com/subject/lxvfyxtx.html