仅使用密码进行本地身份验证,而不使用TouchID
问题描述:
假设我的应用程序有敏感数据,并且我想确保用户在通过密码本地进行身份验证,然后再访问它。我使用iOS 8的Xamarin TouchID认证,如Xamarin intro to touch ID article所示。我在运行iOS 7的较旧设备上进行了测试,显然无法正常工作。所以我的问题是,我如何使用iOS 7设备进行通行码身份验证?这仅适用于iOS 8吗?仅使用密码进行本地身份验证,而不使用TouchID
我注意到iOS应用程序Mint使用自定义密码。您如何实现连接到TouchID弹出框中的“输入密码”按钮的自定义密码?如果我知道如何做到这一点我可以实现自己的自定义密码,所以它适用于iOS的7 ...
答
不能使用触摸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在error.code中包含switch语句以处理所有可能发生的不同情况 – whyoz