我在我的应用中使用 Touch ID。
- 如果 Touch ID 指纹扫描连续失败三次,我会收到一个
超出应用程序重试限制。
错误。 - 如果 Touch ID 指纹扫描再失败两次,我会收到一个
Biometry is locked out.
错误。
被生物识别锁定后,您需要输入您的密码。奇怪的是,如果您的密码输入正确,那么这不会导致 evaluatePolicy
回调中的成功
。相反,系统会提示您重试生物测定。
在生物识别被锁定后,我如何收到密码已正确输入的通知?
最佳答案
习惯我提到的内容的一个非常好的方法是使用 Apple 提供的这个项目:Using Touch ID with Keychain and LocalAuthentication
有两种方法可以提示您的用户进行 Touch ID 身份验证;各有优缺点。
-[LAContext evaluatePolicy:localizedReason:reply:]
。
这允许您提示系统仅要求用户进行 Touch ID 身份验证(如果设置正确)。如果用户由于这里或其他地方的反复失败而被锁定,他们将被要求输入密码作为解锁 Touch ID 再次使用的一种方式(据我所知)。由于调用 evaluatePolicy:localizedReason:reply:
的最初目标是让用户使用 Touch ID 进行身份验证,因此它仍会要求他们这样做。
这种方法的好处是您从通话中返回的错误更能描述发生的事情(用户取消与失败)。
- 在由
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
保护的钥匙串(keychain)中存储一些东西
此选项可能会给您带来您感兴趣的体验。使用此属性将某些内容存储在钥匙串(keychain)中后,尝试从钥匙串(keychain)复制它会出现更熟悉的 Touch ID 提示,允许用户在以下情况下输入密码需要(尽管我在 iOS 8.3 Beta 中注意到,第一次尝试时提示不显示“输入密码”选项。
这种方法的缺点是无论用户如何结束进程(以某种方式失败或只是点击取消),您总是会收到失败错误。
关于ios - 使用密码时获取 Touch ID 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29728762/