TouchID: в чем разница между откатом (введите пароль) и отменой?

Я интегрирую TouchID в свое приложение, но не вижу разницы между двумя кнопками enter password и cancel. Они приводят к ошибке LAErrorUserCancel или LAErrorUserFallback, но я не могу обрабатывать их по-другому, поэтому я хотел бы избежать одной из двух кнопок. Есть ли способ сделать это? Или какая здесь лучшая практика?

1Password является примером здесь; обе кнопки, которые представляются пользователю, ведут к одному и тому же действию — вам нужно ввести пароль в приложение вручную. На мой взгляд, было бы целесообразно иметь здесь только одну кнопку.


person swalkner    schedule 01.10.2014    source источник


Ответы (2)


Кнопку «Введите пароль» очень легко удалить, если она не нужна для вашего приложения. Просто задайте для свойства localizedFallbackTitle пустую строку, а не ноль, и кнопка не будет отображаться.

LAContext *context = [[LAContext alloc] init];
context.localizedFallbackTitle = @"";

(Вы также не можете установить его на что-то более подходящее для вашего приложения, если вам нужно, просто поместите туда строку.)

Примечание: чтобы на самом деле ответить на вопрос в том виде, в котором он был опубликован, а не на комментарий, который этот OP оставил в другом ответе ... резервный случай полезен, когда пользователь решил не использовать TouchID, а скорее введет пароль, чтобы получить доступ к ваш заблокированный сервис. Вы можете проверить это в сообщении evaluatePolicy.

person Paul Cezanne    schedule 30.12.2014

Если представление предупреждения touchID отображается из того же виртуального канала, который содержит поле пароля, оба варианта будут выполнять одно и то же. Но подумайте о тех случаях, когда у вас есть рабочий процесс, в котором вы можете отменить операцию полной аутентификации (LAErrorUserCancel) или отобразить контроллер представления входа в систему (LAErrorUserFallback).

person Billy Tobon    schedule 01.10.2014
comment
хорошо, спасибо большое. Можно ли скрыть одну из двух кнопок? - person swalkner; 01.10.2014