如何调用警报以访问FaceID / TouchID Swift

时间:2019-10-17 09:46:17

标签: ios swift touch-id face-id

我想知道如何调用iOS来显示从苹果弹出的警报,以使用户在应用程序设置中将其禁用时可以使用Face ID / Touch ID进行访问。我知道这已放入info plist中,但是当我从设置中禁用它们时,它不再显示询问:

这是来自圣经的图片: Here is the image from disable

2 个答案:

答案 0 :(得分:0)

@Paulw11所述,您只需要问一次。如果用户拒绝访问,则最好的办法是询问他们是否要转到“设置”以允许生物识别。代码将是这样的:

let alertController = UIAlertController (title: "Title", message: "Go to Settings?", preferredStyle: .alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in

    guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
        return
    }

    if UIApplication.shared.canOpenURL(settingsUrl) {
        UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
            print("Settings opened: \(success)") // Prints true
        })
    }
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alertController.addAction(cancelAction)

present(alertController, animated: true, completion: nil)

this answer所示。

请记住,这会将用户从应用程序中带走,但是到目前为止,没有其他方法可以做到这一点。

答案 1 :(得分:-1)

您需要检查是否可以通过生物识别技术对设备进行身份验证。

在调用函数进行身份验证之前,请先执行此操作。

func canAuthenByBioMetrics() -> Bool {
    let context = LAContext()
    var authError: NSError?

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

显示您的代码将是:

if self.canAuthenByBioMetrics() {
    // Do you authentication
} else {
    // Ask user for enable permission or setup biometric if needed
}