gpt4 book ai didi

ios - 在应用程序中启用触摸 ID 和面容 ID

转载 作者:行者123 更新时间:2023-11-28 23:52:48 25 4
gpt4 key购买 nike

我们如何知道应用程序已经启用了触摸或面部 ID?现在我正在使用生物识别身份验证 CocoPod 来集成它。

提前致谢

最佳答案

您可以将 LocalAuthentication 与 LAContext 一起使用,它将完成这项工作并告诉您您想知道的有关设备生物识别状态的所有信息。您可以使用这个单例类作为起点:

import LocalAuthentication

final public class BiometryManager {
public typealias SuccessComplition = () -> Void
public typealias ErrorComplition = (Error?) -> Void

public static let shared = BiometryManager()
private let context = LAContext()

private init() { }

public var biometryType: LABiometryType {
var error: NSError?

guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
return LABiometryType.LABiometryNone
}

return context.biometryType
}

public func authenticate(successComplition: @escaping SuccessComplition, errorComplition: @escaping ErrorComplition) {
var error: NSError?
let reasonString = "provide reason text"

guard context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else {
errorComplition(error)
return
}

context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reasonString, reply: { (success, evalPolicyError) in
DispatchQueue.main.async {
if success {
successComplition()
} else {
errorComplition(evalPolicyError)
}
}
})
}
}

该类可从 iOS 11 获得,它会告诉您有关设备生物识别类型的信息,您还可以调用身份验证方法。如果它返回错误,您可以将其转换为 LAError 并从中获取更具体的错误代码。希望对您有所帮助。

看看:https://developer.apple.com/documentation/localauthentication/laerror

您可以将此属性添加到上述类以检查生物识别可用性:

public var isAvailable: Bool {
var error: NSError?

if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {return true}

guard let laError = error as? LAError else {return false}

// Check the laError.code, maybe its locked or something else and make specific decision
}

关于ios - 在应用程序中启用触摸 ID 和面容 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51733087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com