Swift & deviceOwnerAuthentication : 如何在不先通过生物认证的情况下直接查看密码认证板?

Swift & deviceOwnerAuthentication : How to view passcode authentication board directly without going through Biometric Auth first?

我正在尝试使用设备密码对用户进行身份验证。我想直接查看密码板。但是使用下面的代码,我总是必须先通过生物识别身份验证并失败才能使用密码进行身份验证。如何直接获取密码板?

import UIKit
import LocalAuthentication

class ViewController: UIViewController {

    @IBOutlet weak var userButton: UIButton!
    
    @IBOutlet weak var resultLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func buttonPressed(_ sender: UIButton) {
        authenticateUser()
    }
    
    func authenticateUser() {
        let context = LAContext()
        
        context.evaluatePolicy(LAPolicy.deviceOwnerAuthentication, localizedReason: "Please authenticate to proceed.") { (success, error) in
            DispatchQueue.main.async {
                if success {
                    self.resultLabel.text = "Success"
                    print("Success")
                }else{
                    self.resultLabel.text = "Failed"
                    print("Failed")
                    return
                }
            }
            
            
            
            
        }
    }
    
}

谢谢

如果设备具有生物识别功能并且用户已注册,则仅使用密码的本地身份验证不可用。

您可以使用 LAPolicy.deviceOwnerAuthenticationWithBiometrics 防止回退到密码,但没有直接转到密码选项的策略。

LAPolicy.deviceOwnerAuthentication 将始终先尝试生物识别(如果可用),然后再回退到设备密码。