2017-03-12 4 views
0

私は現在、アプリでLAPolicyDeviceOwnerAuthenticationを使用してTouchID /パスコードの検証を行っています。しかし、ユーザーが「キャンセル」をクリックすると、私のアプリはtouchID /パスコードの確認を閉じて何もしません。 touchID検証プロセスを再起動する方法がありますか?ここで iOS LAPolicyDeviceOwnerAuthentication "キャンセル"ボタン

は、私は現在、実行しようとしていているもの:助けを

-(void)callAuthenticate { 
LAContext *myContext = [[LAContext alloc] init]; 
NSError *authError = nil; 
NSString *myLocalizedReasonString = @"Please Enter Touch ID"; 

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { 
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthentication 
       localizedReason:myLocalizedReasonString 
         reply:^(BOOL success, NSError *error) { 
          if (success) { 
           dispatch_async(dispatch_get_main_queue(), ^{ 
            [self performSegueWithIdentifier:@"showList" sender:nil]; 
           }); 
          } else if (error){ 
           NSString *errorMessage; 
           BOOL showError = NO; 
           switch (error.code) { 
            case LAErrorAuthenticationFailed: 
             errorMessage = @"Sorry couldn't autheticate"; 
             showError = YES; 
             break; 
            case LAErrorPasscodeNotSet: 
             errorMessage = @"No Passcode has been set"; 
             showError = YES; 
             break; 
            case LAErrorTouchIDNotEnrolled: 
             errorMessage = @"Touch ID has no enrolled fingers"; 
             showError = YES; 
             break; 
            default: 
             showError = NO; 
             break; 
           } 
           if (showError) { 
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" 
                        message:errorMessage 
                        delegate:nil 
                      cancelButtonTitle:@"Ok" 
                      otherButtonTitles:nil]; 
            [alert show]; 

           } 
          } 
         }]; 
} else { 
    [self performSegueWithIdentifier:@"showList" sender:nil]; 
} 

}

感謝を! :-)

答えて

1

エラーコードがLAErrorUserCanceledの場合は、このケースを処理する必要があります。現在は何もしていないdefault:ケースで処理されています。

関連する問題