2016-04-06 4 views
5

に表示する「パスワードの入力」を取得するにはどうすればよいです。LocalAuthenticationフレームワーク - 私はiOS用LocalAuthenticationフレームワークを使用していますし、私のアプリのためにTouchID認証を実装するためにウェブの周りからの一般的なチュートリアルに従っている最初の呼び出し

アプリケーションがcontext.evaluatePolicy(ポリシー、エラー:&エラー)を呼び出すときに、ダイアログボックスを閉じてパスワードを入力するためにユーザに「キャンセル」を選択させる代わりに、「パスワードの入力」オプションを表示したい。

これはAppStoreアプリのデフォルトの動作ですが、私のアプリが同じように動作するようにすることはできません。 AppStoreのスクリーンショット以下を参照してください:私が使用

AppStore TouchID Authentication

コードがそこに様々なチュートリアルと一致しています。以下のコードを参照してください。

私のアプリは、次の画面で起動します:

My App TouchID authentication

私はSOや他のサイトで、ハイとローで検索しましたが、「ショーのパスワード」と私のアプリを起動することができていません。登録していない指で認証すると、LAのダイアログボックスが "もう一度やり直す"に変わり、 "パスワードを表示"ボタンが表示されます。

 let context = LAContext() 
     var error : NSError? 

     // Test if TouchID policy is available on the device and a fingerprint has been enrolled. 
     var policy : LAPolicy! 
     if #available(iOS 9.0, *) { 
      policy = (context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error:&error) ? LAPolicy.DeviceOwnerAuthenticationWithBiometrics : LAPolicy.DeviceOwnerAuthentication) 
     } else { 
      // Fallback on earlier versions 
      policy = LAPolicy.DeviceOwnerAuthenticationWithBiometrics 
     } 
     if context.canEvaluatePolicy(policy, error:&error) { 
      // evaluate 
      context.evaluatePolicy(policy, localizedReason: reason, reply: { 
       (success: Bool, authenticationError: NSError?) -> Void in 

       // check whether evaluation of fingerprint was successful 
       if success { 
        okHandler() 
       } else { 
        // fingerprint validation failed 
        // get the reason for validation failure 
        var failureReason = "unable to authenticate user" 
        if let code = error?.code { 
         switch code { 
         case LAError.AuthenticationFailed.rawValue: 
          failureReason = "authentication failed" 
         case LAError.UserCancel.rawValue: 
          failureReason = "user canceled authentication" 
         case LAError.SystemCancel.rawValue: 
          failureReason = "system canceled authentication" 
         case LAError.PasscodeNotSet.rawValue: 
          failureReason = "passcode not set" 
         case LAError.UserFallback.rawValue: 
          failureReason = "user chose password" 
         default: 
          failureReason = "unable to authenticate user" 
         } 
        } 
        print("validation reason: \(failureReason)."); 
        cancelHandler() 
       } 
      }) 
     } else { 
     } 

助けてください!

+0

あなたは、この問題への道を見つけるのですか? –

答えて

2

あなたがすることはできません。フォールバックボタンを表示させるには、間違った指紋を少なくとも1回入力する必要があります。うまくいけばリンゴは機能のプロパティを追加します。

0

残念ながら、あなたがこれを行うことはできません、ローカル認証フレームワークは、セキュリティやプライバシー上の理由のために非常に限られています。

関連する問題

 関連する問題