0

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

这是来自 diable 的图像: 这是禁用的图像

4

3 回答 3

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)

正如在这个答案上看到的那样。

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

于 2019-10-17T12:03:12.003 回答
0

如果在设置中关闭了 Face ID,则必须将其重定向到设置才能重新打开。

于 2021-10-15T16:25:45.340 回答
-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
}
于 2019-10-17T09:53:57.877 回答