我在 iOS 9 和 iOS 10 上使用 LocalAuthentication。并注意到以下行为差异。在 iOS 9 中,如果我执行下面显示的代码,并通过使用错误的手指进行身份验证导致 touchID 被锁定,即使在 Touch ID 被锁定后,调用 context.canEvaluatePolicy 也会返回 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)
})
}
}
}
}
Best Answer-推荐答案 strong>
在 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/
|