我在我的应用中使用Touch ID。
Application retry limit exceeded.
错误。Biometry is locked out.
错误。从生物测定中锁定后,您需要输入密码。奇怪的是,如果您的密码输入正确,那么不会导致success
回调中的evaluatePolicy
。相反,系统会提示您重试生物测量。
如何在锁定生物统计数据后收到密码正确输入的通知?
答案 0 :(得分:2)
习惯我提到的一个非常好的方法是使用Apple提供的这个项目:Using Touch ID with Keychain and LocalAuthentication
有两种方法可以提示您的用户进行Touch ID身份验证;各有利弊。
-[LAContext evaluatePolicy:localizedReason:reply:]
。 这允许您提示系统仅向用户询问其Touch ID身份验证(如果设置正确)。如果用户因此处或其他地方的重复故障而被锁定,则会要求他们输入密码作为再次解锁Touch ID的方法(据我所知)。由于调用evaluatePolicy:localizedReason:reply:
的初始目标是让用户使用Touch ID进行身份验证,因此仍然会要求他们执行此操作。
这种方法的好处是,您从通话中获得的错误更能描述发生的事情(用户取消与失败)。
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
此选项可能会为您提供您感兴趣的体验。使用此属性在钥匙串中存储内容后,尝试从钥匙串复制它将显示更熟悉的Touch ID提示,允许用户输入密码如果需要(虽然我已经注意到在iOS 8.3 Beta中,提示没有在第一次尝试时显示"输入密码"选项。
这种方法的缺点是,无论用户如何结束流程(以某种方式失败或只是取消取消),您总会收到失败的错误。