ユーザーが TouchID ローカル認証に数回以上失敗したときに、iOS 8 がアプリの画面を引き継ぐとイライラします。ユーザーが失敗し、バックエンドがそのようにプログラムされている場合にどうするかを決定し、制御する必要があると感じています。
アプリの途中でパスコード画面がポップアップしないようにする方法はありますか?
これは、画面に TouchID をポップするために使用するコードです。
-(void)checkFingerprint
{
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = @"Please scan your fingerprint to open app";
NSString *myFallbackTitle = @"";
[myContext setLocalizedFallbackTitle:myFallbackTitle];
//does this iPhone do fingerprint, is a at least one registered on the phone?
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError])
{
//yes it does, and the fingerprint is registered on the phone!
//now lets check for the fingerprint :)
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:myLocalizedReasonString
reply:^(BOOL success, NSError *error){
dispatch_async(dispatch_get_main_queue(),
^{[self showLocalAuthenticationResult:success :error];});
}];
}
else
{
//Could not evaluate policy; look at authError and present an appropriate message to user
NSLog(@"checkFingerprint()::local authentication/fingerprint error remember both fingerprint and passcode have to be enrolled on iOS %@", authError);
}
}