如何检查用户在iOS应用程序中是否不允许使用FACEID?
当首次在iPhone X上运行支持触摸ID的应用程序时,用户会被询问是否要使用Face ID。如果拒绝,则面ID将被禁用,并且用户将不再获得使用该功能的选项。除了删除和重新安装应用程序之外,还有其他方法可以启用Face ID吗?权限的图像如下所示: 我使用了以下代码来集成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
- (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)