当iOS中无法通过Face ID进行身份验证时,如何在警报中启用尝试Face ID再试一次按钮

时间:2018-07-30 11:08:58

标签: ios swift face-id

我在我的iOS应用中使用了Face ID。用户无法通过身份验证时,默认为默认值,然后重试不起作用。我想在用户单击重试时添加回调。请查看下面的代码。我进行了很多搜索,但未找到关于面孔ID的信息。

func startFaceIDTest(){
        attempted = true
        if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
            let reason = "Identify yourself!"

            context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: reason) {
                [unowned self] (successfaceID, authenticationError) in

                DispatchQueue.main.async {
                    if successfaceID {
                        self.success = true
                        //self.unlockSecretMessage()
                    } else {
                        self.success = false

//                        let ac = UIAlertController(title: "Authentication failed", message: "You could not be verified; please try again.", preferredStyle: .alert)
//                        ac.addAction(UIAlertAction(title: "OK", style: .default))
//                        self.present(ac, animated: true)
                    }
                }
            }
        } else {
            if let err = error {
                if #available(iOS 11.0, *) {
                    self.success = false
                    switch err.code {
                    case LAError.Code.biometryNotEnrolled.rawValue:
                        notifyUser("Your device not enrolled for biometric",
                                   err: err.localizedDescription)

                    case LAError.Code.passcodeNotSet.rawValue:
                        notifyUser("A passcode has not been set",
                                   err: err.localizedDescription)

                    case LAError.Code.biometryNotAvailable.rawValue:
                        notifyUser("Biometric authentication not available",
                                   err: err.localizedDescription)

                    default:
                        notifyUser("Unknown error",
                                   err: err.localizedDescription)
                    }
                } else {
                    // Fallback on earlier versions
                }
            }
        }
    }

0 个答案:

没有答案