ios - 当 TouchID 在 iOS 9 上被锁定时,LAContext.canEvaluatePolicy 返回 true

标签 ios iphone touch-id

我在 iOS 9 和 iOS 10 上尝试使用 LocalAuthentication。并注意到以下行为差异。在 iOS 9 中,如果我执行下面显示的代码,并通过使用错误的手指进行身份验证导致 touchID 被锁定,调用 context.canEvaluatePolicy 即使在 Touch ID 被锁定后也会返回 true,然后调用 context .evaluatePolicy 使设备提示我输入设备密码。

在 iOS 10 中,如果我锁定 TouchID,canEvaluatePolicy 返回 false,错误是有一个指示 TouchIDLockout 的代码。

TouchIDLockout 是在 iOS 9 中引入的,所以我希望在 iOS 9 中获得该错误代码,但目前还没有。有没有其他人遇到过这种情况?

@IBAction func test(_ sender : UIButton) {
    let context = LAContext()
    var error : NSError? = nil
    if  context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
            context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: "Boom", reply: { (success, error) in
                let code = (error as? LAError)?.code.rawValue
                sender.setTitle(String(code ?? 2), for: .normal)
            })
        }
    }

}

最佳答案

在 Apple Dev Forums 上查了一下,这是 iOS 9 中的一个错误,已在 iOS 10 中修复。

https://forums.developer.apple.com/message/193538#193538

关于ios - 当 TouchID 在 iOS 9 上被锁定时,LAContext.canEvaluatePolicy 返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016670/

相关文章:

iphone - 可以用eclipse进行iPhone开发吗?

iphone - iPad Info.plist 未转换为二进制文件

ios - 是否可以获取 TouchID 信息并与指纹数据库进行比较?

ios - Touch ID "Try Again"警报 View 的标题是否可自定义?

ios - QBChatDelegate-chatDidReceiveMessage : getting called but dialogID is NULL

ios - 如何从 IBAction 方法更改自定义单元格的属性?

iphone - 如何获取 UILabel 将截断文本的范围

ios - 拍摄 AVCaptureVideoPreviewLayer View 的快照

ios - 在 Cordova 中将照片保存到 iOs 相册

swift - 如何显示输入密码并重试警报 View