美文网首页
密码锁功能

密码锁功能

作者: Skysama | 来源:发表于2019-06-19 22:38 被阅读0次

判断是否开着密码锁

NSString *touch =   [[NSUserDefaults standardUserDefaults]objectForKey:@"ISTouch"];
        if ([touch isEqualToString:@"ON"]) {
            ViewController *VC = [[ViewController alloc]init];
            
            QMUINavigationController *nav = [[QMUINavigationController alloc]initWithRootViewController:VC];
            
            self.window.rootViewController = nav;
            self.window.backgroundColor = [UIColor whiteColor];
            [self.window makeKeyAndVisible];
        }else{
            
            HomeViewController *VC = [[HomeViewController alloc]init];
            
            QMUINavigationController *nav = [[QMUINavigationController alloc]initWithRootViewController:VC];
            
            self.window.rootViewController = nav;
            self.window.backgroundColor = [UIColor whiteColor];
            [self.window makeKeyAndVisible];
        }
    

``

  • (void)clicktouch{
    LAContext* context = [[LAContext alloc] init];
    //这个设置的使用密码的字体,当text=@""时,按钮将被隐藏
    context.localizedFallbackTitle= @"输入密码解锁";

    //这个设置的取消按钮的内容
    if (@available(iOS 10.0, )) {
    context.localizedCancelTitle = @"取消";
    } else {
    // Fallback on earlier versions
    }
    //错误对象
    NSError
    error = nil;
    NSString* result = @"需要验证您的touch ID";
    //首先使用canEvaluatePolicy 判断设备支持状态
    if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
    error:&error]) {
    NSLog(@"支持指纹识别");
    [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
    localizedReason:result reply:^(BOOL success, NSError * _Nullable error) {
    if (success) {
    NSLog(@"验证成功 刷新主界面");
    // [SVProgressHUD showSuccessWithStatus:@"验证成功"];
    // [SVProgressHUD dismissWithDelay:1.5];
    // 主线程跳转 一定要在主线程 因为这个环节很慢
    dispatch_async(dispatch_get_main_queue(), ^{

                          [self pushtoHome];
                      });
                  
                      
                  }else{
                      NSLog(@"%@",error.localizedDescription);
                      switch (error.code) {
                          case LAErrorSystemCancel:
                          {
                          NSLog(@"系统取消授权,如其他APP切入");
                          break;
                          }
                          case LAErrorUserCancel:
                          {
                          NSLog(@"用户取消验证Touch ID");
                          break;
                          }
                          case LAErrorAuthenticationFailed:
                          {
                          NSLog(@"授权失败");
                          break;
                          }
                          case LAErrorPasscodeNotSet:
                          {
                          NSLog(@"系统未设置密码");
                          break;
                          }
                          case LAErrorTouchIDNotAvailable:
                          {
                          NSLog(@"设备Touch ID不可用,例如未打开");
                          break;
                          }
                          case LAErrorTouchIDNotEnrolled:
                          {
                          NSLog(@"设备Touch ID不可用,用户未录入");
                          break;
                          }
                          case LAErrorUserFallback:
                          {
                          [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                              NSLog(@"用户选择输入密码,切换主线程处理");
                              [self clickPwd];
                          }];
                          break;
                          }
                          default:
                          {
                          [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                              NSLog(@"其他情况,切换主线程处理");
                          }];
                          break;
                          }
                      }
                  }
              }];
    

    }else{
    NSLog(@"不支持指纹识别");
    switch (error.code) {
    case LAErrorTouchIDNotEnrolled:
    {
    NSLog(@"TouchID is not enrolled");
    break;
    }
    case LAErrorPasscodeNotSet:
    {
    NSLog(@"A passcode has not been set");
    break;
    }
    default:
    {
    NSLog(@"TouchID not available");
    break;
    }
    }

      NSLog(@"%@",error.localizedDescription);
    

    }
    }

相关文章

网友评论

      本文标题:密码锁功能

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