Автозаполнение имени пользователя и пароля в iOS 12 - PullRequest
0 голосов
/ 26 сентября 2018

Я успешно реализовал автозаполнение для сохраненного предложения имени пользователя и пароля в iOS 11.
У меня есть два текстовых поля в моем контроллере представления входа в систему, одно для электронной почты, одно для пароля.Типы контента определены следующим образом:

image
конфигурация текстового поля электронной почты / имени пользователя

image
конфигурация текстового поля пароля

Раньше это прекрасно работало в iOS 11, но после обновления моего iPad для разработки до iOS 12 приложение предлагает электронные письма для поля имени пользователяи при редактировании поля пароля происходит следующее:

image


В моем контроллере создания учетной записи у меня есть 3 текстовых поля: электронная почта, пароль, повторный пароль.Их режимы содержания настраиваются следующим образом:

  • электронная почта → адрес электронной почты
  • пароль → новый пароль, правило: minlength:8;
  • повторный пароль → новый пароль, правило: minlength:8;

При редактировании поля адреса электронной почты, он правильно предлагает адрес электронной почты.Однако для полей пароля и повторного пароля вместо сохраненного пароля предлагается сохранить пароль.


Что я пробовал

  • (нелогично) перевернуть режим содержимогонастройку, поэтому в поле пароля для входа установлено значение new password, а в полях для создания пароля учетной записи установлено значение password
    • не удалось;фактически, никаких изменений в поведении вообще нет
  • установите режим содержимого на none для входа в систему и создания полей учетной записи, чтобы автозаполнение могло попытаться обработать его автоматически
    • безуспешно;фактически, никаких изменений в поведении вообще

Примечание

  • На сервере правильно настроена автозаполнение.Сохраненные пароли, предлагаемые в полях создания учетной записи, доказывают, что
  • Функциональность все еще работает на iOS 11. IPad
  • При входе в систему с новым именем пользователя приложение попросит пользователя добавить этоимя пользователя и пароль для связки ключей, даже на iOS 12

Есть идеи, что мне нужно изменить, чтобы сохраненное предложение имени пользователя и пароля снова работало в iOS 12?

Спасибо!



Редактировать

В соответствии с запросом @kralex ниже, моя иерархия представления для контроллера представления входа в систему в раскадровке:

image

... и на устройстве:

image

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

У меня была похожая проблема, и я обнаружил, что эвристика Apple подключается к имени класса контроллера представления , чтобы определить, предлагать ли новый пароль или использовать существующий.Кажется, что даже если бы я установил правильный textContentType на моих UITextField с, он все равно использовал бы имя контроллера.

Мой UIViewController имеет и регистрацию и вход в систему на одном экране,но контроллер называется RegistrationViewController.Я изменил его на LoginViewController для проверки и обнаружил, что часть входа в систему начала работать, но бит регистрации действовал так, как будто это был вход в систему!Даже с правильным набором textContentType s!

Я вынужден был переименовать мой UIViewController что-то, что не подразумевает регистрацию или вход в систему, чтобы оно действительно уважало мои textContentType s.Это ужасно.Действительно ужасно.

Я бы предположил, что, по крайней мере, одна из причин, по которой это происходит с вами, заключается в том, что у вас есть слово Welcome в качестве начала вашего контроллера представления, невероятно, как это звучит.

Кстати, я пробовал RegistrationLoginViewController (он выбрал настройку регистрации) и LoginRegistrationViewController (он выбрал настройку входа в систему), но ни одна из них не работала.Необходимо избегать эвристики Apple, если вы хотите, чтобы оба были на одном контроллере.

0 голосов
/ 29 сентября 2018

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

В вашем случае проблема связана с кнопкой «Создать учетную запись».Это заставляет систему думать, что это форма регистрации.

Самый простой способ исправить это: заменить UIButton регистрации на UILabel и добавить tapRecognizer для обработки нажатий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...