仅使用密码进行本地身份验证,而不使用TouchID

问题描述:

假设我的应用程序有敏感数据,并且我想确保用户在通过密码本地进行身份验证,然后再访问它。我使用iOS 8的Xamarin TouchID认证,如Xamarin intro to touch ID article所示。我在运行iOS 7的较旧设备上进行了测试,显然无法正常工作。所以我的问题是,我如何使用iOS 7设备进行通行码身份验证?这仅适用于iOS 8吗?仅使用密码进行本地身份验证,而不使用TouchID


我注意到iOS应用程序Mint使用自定义密码。您如何实现连接到TouchID弹出框中的“输入密码”按钮的自定义密码?如果我知道如何做到这一点我可以实现自己的自定义密码,所以它适用于iOS的7 ...

enter image description hereenter image description here

不能使用触摸ID与iOS 7

要使用自定义密码只能捕获evaluatePolicy中的LAErrorUserFallback错误。

LAContext *context = [[LAContext alloc] init]; 
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics 
       localizedReason:@"Your Text" reply:^(BOOL success, NSError *error) { 
        if(success) { 
        // handle success 
        } else { 
         NSString *failureReason; 
         switch (error.code) { 
          case LAErrorUserFallback: 
           // show your custom passcode screen 
           break; 
         } 
        } 
       }]; 

代码显然需要完成,您还需要处理所有其他错误情况。

+1

+1在error.code中包含switch语句以处理所有可能发生的不同情况 – whyoz