Как вызвать оповещение о доступе FaceID / TouchID Swift - PullRequest
1 голос
/ 17 октября 2019

Я хочу знать, как я могу позвонить в iOS, чтобы показать всплывающее предупреждение от Apple, чтобы дать приложению доступ к Face ID / Touch ID, когда пользователь отключает их в настройках приложения. Я знаю, что это вставлено в информационный лист, но когда я отключаю их в настройках, он не показывает запрос снова:

Вот изображение из diable: Here is the image from disable

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Как упоминалось @ 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)

Как видно на этот ответ .

Имейте в виду, что это заберет пользователя из приложения, но пока нет другого способа сделать это.

0 голосов
/ 17 октября 2019

Необходимо проверить, может ли устройство подтвердить подлинность по биометрии или нет.

Давайте сделаем это прямо перед вызовом вашей функции для аутентификации.

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...