Как ввести пароль в системное уведомление, когда FaceID не сработало?

Делаю авторизацию, используя FaceID и TouchID, в зависимости от устройства.
При нераспозании лица или пальца всегда выскакивает автоматическое системное уведомление, когда предлагает мне повторить попытку либо ввести пароль.
Но эта кнопка "Enter Password" не работает и просто закрывает уведомление, по нажатию на нее.

5aa90629e93c8352539215.png5aa9063172a4e565880654.png

Как запрограммировать эту кнопку и считать с нее пароль?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
doublench21
@doublench21
https://www.prolificinteractive.com/2015/01/26/tut...

Думаю тут вы найдёте все волнующие Вас вопросы, в том числе и проверку пароля.

Для начала переходим сюда и смотрим:
case deviceOwnerAuthenticationWithBiometrics
Indicates that the device owner must authenticate using biometry. // Юзаем только биометрию

case deviceOwnerAuthentication
Indicates that the device owner can authenticate using biometry or the device password. //Юзаем биометрия и если её нет, то Пароль
Подробности по каждому из методов можно найти там же. Подробности 2ого варианта

У тебя в коде 1ый варинт, сменим на 2ой:
if contex.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil) {
            contex.evaluatePolicy(LAPolicy.deviceOwnerAuthentication, localizedReason: "Use TouchID", reply: { wasSuccessful, _ in

                if wasSuccessful {
                    print("Все получилось")
                    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
                    let homeVC = mainStoryboard.instantiateViewController(withIdentifier: "HomeVC")
                    self.navigationController?.pushViewController(homeVC, animated: true)
                } else {
                    print("Что-то пошло не так")
                }
            })
        }

При таком подходе, появится следующее:5aa933ca7eb2a419650612.jpeg

Ну и забыл добавить, если тип проверки оставить неизменным, то есть 1ый способ, то при нажатии на кнопку ввести пароль нужно ловить ошибку типа . userFallback

При таком подходе после того как Вы отловили, вы уже сами вольны делать все что угодно. Выводить контрол или ещё что. НО, вывести экран с кнопками для ввода пинкод сами Вы не можете. Нужно реализовать свой, либо найти готовый, коих можно найти. А лучше воспользоваться обычным аллертом с полем для ввода.

Authentication was canceled because the user tapped the fallback button in the authentication dialog, but no fallback is available for the authentication

Подробности тут https://developer.apple.com/documentation/localaut...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
PRIDEX Group Москва
До 180 000 руб.
BTlabs Москва
от 60 000 руб.
от 100 000 до 180 000 руб.
17 дек. 2018, в 01:36
700 руб./в час
16 дек. 2018, в 22:06
700 руб./в час
16 дек. 2018, в 21:48
1000 руб./за проект