2016-04-06 5 views
5

मैं iOS के लिए LocalAuthentication ढांचे का उपयोग कर रहा है और मेरे अनुप्रयोग के लिए TouchID प्रमाणीकरण लागू करने के लिए वेब से सामान्य ट्यूटोरियल का पालन किया है पर दिखाने के लिए "पासवर्ड दर्ज करें" है।LocalAuthentication ढांचा - मैं कैसे मिलता है पहले मंगलाचरण

जब ऐप संदर्भ देता है .evaluate नीति (नीति, त्रुटि: & त्रुटि) मैं उपयोगकर्ता को संवाद बॉक्स को खारिज करने और पासवर्ड दर्ज करने के लिए "रद्द करें" का चयन करने के बजाय "पासवर्ड दर्ज करें" का विकल्प दिखाना चाहता हूं ।

यह AppStore app में डिफ़ॉल्ट व्यवहार है, लेकिन मैं अपने ऐप उसी तरह प्रदर्शन करने के लिए नहीं मिल सकता है। कृपया AppStore स्क्रीनशॉट नीचे देखें:

AppStore TouchID Authentication

कोड का उपयोग मैं वहाँ बाहर विभिन्न ट्यूटोरियल के अनुरूप है। नीचे कोड देखें।

मेरे ऐप को निम्न स्क्रीन के साथ की शुरूआत:

My App TouchID authentication

मैं उच्च और निम्न खोज की है, अतः और अन्य साइटों पर नहीं बल्कि साथ "पासवर्ड शो" मेरे एप्लिकेशन को लॉन्च करने में सक्षम है। जब मैं एलए संवाद बॉक्स को प्रमाणित करने के लिए एक अनियंत्रित उंगली का उपयोग करता हूं तो "पुनः प्रयास करें" में परिवर्तन होता है और "पासवर्ड दिखाएं" बटन होता है।

 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

आप नहीं कर सकते। फॉलबैक बटन दिखाई देने के लिए उपयोगकर्ता को गलत फिंगरप्रिंट कम से कम एक बार "एंटर" करना होगा। उम्मीद है कि सेब सुविधा में एक संपत्ति जोड़ते हैं।

0

दुर्भाग्य से आप यह नहीं कर सकते हैं, स्थानीय प्रमाणीकरण ढांचे सुरक्षा और गोपनीयता कारणों के लिए बेहद सीमित है।

संबंधित मुद्दे