1

我在我的应用程序中使用 Touch ID。

  • 如果 Touch ID 指纹扫描连续 3 次失败,我会收到Application retry limit exceeded.错误消息。
  • 如果 Touch ID 指纹扫描再次失败两次,我会收到Biometry is locked out.错误消息。

被生物识别锁定后,您需要输入密码。奇怪的是,如果您的密码输入正确,那么这不会导致回调。相反,系统会提示您重试生物测定。successevaluatePolicy

在生物识别被锁定后,如何获得密码输入正确的通知?

4

1 回答 1

2

习惯我所说的一个非常好的方法是使用 Apple 提供的这个项目:Using Touch ID with Keychain and LocalAuthentication

有两种方法可以提示您的用户进行 Touch ID 身份验证;每个都有其优点和缺点。

  1. -[LAContext evaluatePolicy:localizedReason:reply:].

这允许您提示系统仅询问用户的 Touch ID 身份验证(如果设置正确)。如果用户由于这里或其他地方的反复失败而被锁定,他们会被要求输入密码,以再次解锁 Touch ID 的使用(据我所知)。由于调用的最初目标evaluatePolicy:localizedReason:reply:是让用户使用 Touch ID 进行身份验证,因此它仍然会要求他们这样做。

这种方法的好处是您从通话中得到的错误更能描述发生的事情(用户取消与失败)。

  1. 将某些东西存储在由以下方式保护的钥匙串中kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

此选项可能会为您提供您感兴趣的体验。使用此属性将某些内容存储在钥匙串中后,尝试从钥匙串中复制它会显示更熟悉的 Touch ID 提示,允许用户在需要时输入他们的密码(尽管我注意到在 iOS 8.3 Beta 中,第一次尝试时提示没有显示“输入密码”选项。

这种方法的缺点是,无论用户如何结束进程(以某种方式失败或只是点击取消),您总是会收到失败的错误。

于 2015-04-20T14:51:41.227 回答