【问题标题】:How to check the status of Touch ID?如何查看 Touch ID 的状态?
【发布时间】:2018-01-16 10:22:55
【问题描述】:

我想知道如何检查 Touch ID 的状态。 详细信息:如果触摸 ID 失败超过 3 次,则触摸 ID 被禁用。要激活,我必须在锁定屏幕上输入密码或按 ID 菜单上的密码。我怎么知道touch id的状态是able还是disable?

【问题讨论】:

    标签: ios objective-c touch-id


    【解决方案1】:
    // Create LA Context
    LAContext *myContext = [[LAContext alloc] init];
    NSError *authError = nil;
    NSString *myLocalizedReasonString = @"Specify why you need TouchID";
    
    // Policy evalivation - start
    if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
        [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            // Reply block - start
                            reply:^(BOOL success, NSError *error) {
    
                                // success - start
                                if (success) {
    
                                    NSLog(@"User authenticated successfully, take appropriate action");
    
                                    double delayInSeconds = 0.1;
                                    dispatch_time_t replaceTab = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
                                    dispatch_after(replaceTab, dispatch_get_main_queue(), ^(void){
    
                                        [self touchIDSuccess];
    
                                    });
    
                                // success - end
                                // Not successful - start
                                } else {
    
                                    // error != NULL - start
                                    if(error != NULL)
                                    {
                                        // switch - start
                                        switch (error.code){
    
                                            case LAErrorUserCancel:
    
                                                NSLog(@"LAErrorUserCancel");
    
                                                break;
    
                                            case LAErrorUserFallback:
    
                                                NSLog(@"LAErrorUserFallback");
    
                                                break;
                                            case LAErrorAppCancel:
    
                                                NSLog(@"LAErrorAppCancel");
    
                                                break;
    
                                            case LAErrorAuthenticationFailed:
    
    
                                                NSLog(@"kLAErrorAuthenticationFailed");
    
    
                                            default:
    
                                                break;
    
                                        }// switch - end
    
                                    }// error != NULL - end
    
                                }// Not success - end
    
                        }];// Reply block - end
    
    } else {
        // Touch ID was previously used but now Could not evaluate policy , may be because user removed the fingerprint
    
        NSLog(@"Could not evaluate policy");
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 2021-10-05
      相关资源
      最近更新 更多