2016-06-17 10 views
0
- (void)touchIdIntegration{ 
    LAContext *myContext = [[LAContext alloc] init]; 
    NSError *authError = nil;  
    if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) { 

    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics 
       localizedReason:@"Authenticate via Touch ID to unlock the app" 
         reply:^(BOOL success, NSError *error) { 

          if (success) { 
           dispatch_async(dispatch_get_main_queue(), ^{ 

            [[AppManager instance].helpManager setDontShowInterstialAd:TRUE]; 
            [[AppManager instance].cycleManager setUserAuthenticated:TRUE]; 
            [self.delegate showAlertViewsOnServerData]; 

           }); 
          } else { 
           dispatch_async(dispatch_get_main_queue(), ^{ 


            switch (error.code) { 
             case kLAErrorAuthenticationFailed: 
              NSLog(@"kLAErrorAuthenticationFailed"); 
              break; 
             case kLAErrorTouchIDNotEnrolled: 
              NSLog(@"kLAErrorTouchIDNotEnrolled"); 
              break; 
             case LAErrorPasscodeNotSet: 
              NSLog(@"LAError code "); 
              break; 
             default: 
              break; 
            } 
           }); 
          } 
         }]; 
    } else { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     self.m_imgFingerPrint.hidden = YES; 
     NSLog(@"LAError code %ld",authError.code); 
     NSString *alertMessage =nil; 

     switch (authError.code) { 
      case kLAErrorAuthenticationFailed: 
      { 
       alertMessage = @"kLAErrorAuthenticationFailed" ; 

     } 
       break; 
      case kLAErrorTouchIDNotEnrolled: 
       alertMessage = @"kLAErrorTouchIDNotEnrolled" ; 
       break; 
      case LAErrorPasscodeNotSet: 
       alertMessage = @"LAErrorPasscodeNotSet" ; 
       break; 
      default: 
       break; 
     } 
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                    message:alertMessage 
                    delegate:self 
                  cancelButtonTitle:@"OK" 
                  otherButtonTitles:nil, nil]; 
       [alertView show]; 

    }); 
} 
} 

ユーザーがこの画面に移動するたびにこのポップアップを表示したくありませんか?教えてください。事前に enter image description here毎回ポップアップを表示するLAContext

とにかく感謝:

以下のスクリーンショットを見つけてください。

答えて

0

このコードを書かないでくださいviewDidLoadまたはviewDidAppear。 touchIDを尋ねることが絶対に必要な場合にのみ書きます。

+0

確かにそれはviewDidLoadまたはviewDidAppearにはありません。 –

+0

この関数をどこで実行するのですか? – Dershowitz123

+0

この問題は、あるクラスにこのコードを記述し、このクラスから別のクラスを継承している場合にも発生します。 – Dershowitz123

関連する問題