SwiftUI-指纹/人脸识别Touch ID 和 Face ID

1,433 阅读1分钟

绝大多数苹果设备都标配生物识别认证,这意味着它们使用指纹、面部甚至虹膜识别来解锁。我们也可以使用此功能,这意味着我们可以确保敏感数据只有在被有效用户解锁时才能读取。 这是 Objective-C的 API

在编写任何代码之前,您需要向info.plist中添加一个新密钥,向用户解释为什么您想要访问 Face ID。由于只有 Apple 知道的原因,我们在代码中传递了 Touch ID 请求原因,并在项目选项中传递了 Face ID 请求原因。 因此,选择当前目标,转到“信息”选项卡,右键单击现有密钥,然后选择“添加行”。滚动键列表,直到找到“隐私 - Face ID 使用说明”并为其指定值“我们需要解锁您的数据”。

导入import LocalAuthentication 就可以编写一些生物识别代码了

编写一个方法,调用所有生物识别功能。

func authenticate() {

    let context = LAContext() 
    var error: NSError?

    // 检测 设备是否可用 生物识别
    if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) { 

        let reason = "我们需要解锁您的数据" 

        context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) { success, authenticationError in

            // 识别完成
            if success {
                 //....
            } else {

            }
        }

    } else {

        // 不可用

    }
} 

可以在出现画面时调用

.onAppear(perform: authenticate)