如何检查用户在iOS应用程序中是否不允许使用FACEID?

如何检查用户在iOS应用程序中是否不允许使用FACEID?,ios,objective-c,xcode,face-id,localauthentication,Ios,Objective C,Xcode,Face Id,Localauthentication,当首次在iPhone X上运行支持触摸ID的应用程序时,用户会被询问是否要使用Face ID。如果拒绝,则面ID将被禁用,并且用户将不再获得使用该功能的选项。除了删除和重新安装应用程序之外,还有其他方法可以启用Face ID吗?权限的图像如下所示: 我使用了以下代码来集成FaceID,如下所示: - (void)authenicateButtonTapped{ LAContext *myContext = [[LAContext alloc] init]; NSError

当首次在iPhone X上运行支持触摸ID的应用程序时,用户会被询问是否要使用Face ID。如果拒绝,则面ID将被禁用,并且用户将不再获得使用该功能的选项。除了删除和重新安装应用程序之外,还有其他方法可以启用Face ID吗?权限的图像如下所示:

我使用了以下代码来集成FaceID,如下所示:

  - (void)authenicateButtonTapped{
    LAContext *myContext = [[LAContext alloc] init];
    NSError *authError = nil;
    NSString *myLocalizedReasonString = @"Touch ID Test";
    myContext.localizedFallbackTitle = @"";
    
    if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
        [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL success, NSError *error) {
            NSLog(@"success");
            
            if (success) {
                NSString *str = @"You are the owner of device";
                NSArray * result = [[NSArray alloc] initWithObjects:str,nil];
                dispatch_async(dispatch_get_main_queue(), ^{
                    
                    //  executeClosure(callBack, result, NO);
                });
            } else {
                switch (error.code) {
                    case LAErrorAuthenticationFailed:
                        NSLog(@"Authentication Failed");
                        break;
                        
                    case LAErrorUserCancel:
                        NSLog(@"User pressed Cancel button");
                        break;
                        
                    case LAErrorUserFallback:
                        NSLog(@"User pressed Enter Password");
                        break;
                        
                    case LAErrorPasscodeNotSet:
                        NSLog(@"Passcode Not Set");
                        break;
                        
                    case LAErrorBiometryNotAvailable:
                        NSLog(@"Touch ID not available");
                        break;
                        
                    case LAErrorBiometryNotEnrolled:
                        NSLog(@"Touch ID not Enrolled or configured");
                        break;
                        
                    default:
                        NSLog(@"Touch ID is not configured");
                        break;
                }
                NSArray * result = [[NSArray alloc] initWithObjects:error.localizedDescription,nil];
                NSLog(@"Failure error: %@", result);
                dispatch_async(dispatch_get_main_queue(), ^{
                    //  executeClosure(callBack, result, NO);
                    // Rather than show a UIAlert here, use the error to determine if you should push to a keypad for PIN entry.
                });
            }
        }];
    } else {
        NSArray * result = [[NSArray alloc] initWithObjects:authError.localizedDescription,nil];
        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"Failure %@",result);
            
            //   executeClosure(callBack, result, NO);
            // Rather than show a UIAlert here, use the error to determine if you should push to a keypad for PIN entry.
        });
    }
}
请告诉我一次按“不允许”,然后在我使用应用程序时再次告诉我如何检查之前未授予权限?基于此,我可以通过进入设置页面要求用户启用,但到目前为止,我一直在思考如何确定之前是否拒绝了该权限

除了删除和重新安装应用程序之外,还有其他方法可以启用Face ID吗

设置->
你的应用
->面部ID

请告诉我一次按“不允许”,然后在我使用应用程序时再次告诉我如何检查之前未授予权限

如果以下结果返回
FALSE

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

你确定吗?我使用FaceID在模拟器上测试它,也在带有TouchID的设备上测试(应该有类似的行为,因为它们共享相同的API)