cordova-plugin-ionic-webview - Невозможно сохранить пароль в форме HTML, несмотря на атрибут автозаполнения

Я работаю над приложением Cordova (~PhoneGap, ~Ionic), и я следовал рекомендациям Apple и добавил атрибуты автозаполнения в мою HTML-форму входа, чтобы спросить пользователей, хотят ли они сохранить свои учетные данные при попытке зарегистрироваться.

На Android появляется всплывающее окно, которое спрашивает пользователя, хотят ли они правильно хранить свои учетные данные, и я могу выбрать свои сохраненные учетные данные при следующей попытке входа в систему. Однако в iOS это не так.

Первое, что приходит мне в голову, что может помешать веб-просмотру связывать пароли и домены для iOS, - это тот факт, что я использую для последнего пользовательский домен (например, iosapp://).

Я не могу изменить используемый пользовательский домен, есть ли способ, чтобы он все еще предлагал пользователю сохранить свои учетные данные?


Эту проблему можно воспроизвести следующим образом:

  1. Добавьте https://github.com/ionic-team/cordova-plugin-ionic-webview в приложение Cordova (cordova-ios 5.1.0)
  2. Добавить <preference name="Hostname" value="somescheme" /> в ваш config.xml, чтобы указать собственное имя хоста для вашего приложения (по умолчанию - ionic://, и я считаю, что у него тоже будет такая же проблема)
  3. onDeviceReady перенаправляет на мой PoC (который работает во всех других браузерах):
  window.location.href = 'https://gabriele-sacchi.github.io/pocs/biometric';


( проблема с gitlab)

1 ответ

Невозможно вызвать приглашение связки ключей iCloud из вашего веб-просмотра. Cordova-плагин-ионно-WebView использует WKWebViewкласс на iOS, который, похоже, не поддерживает связку ключей iCloud. Это не имеет ничего общего с заданным вами именем хоста пользовательского приложения. Как упоминалось в документах общих веб-учетных данных : «Пользователи часто сохраняют свое имя пользователя и пароль в своей связке ключей iCloud при входе на веб-сайты в Safari»

Вот почему для iOS мне пришлось использовать сафари, чтобы мои пользователи проходили аутентификацию из веб-просмотра и позволяли им сохранять свой пароль. Существует отличный плагин cordova для открытия веб-просмотров с помощью Safari ( cordova-plugin-safariviewcontroller ). Если вы используете Ionic, для этого плагина также есть встроенная поддержка Ionic: safari-view-controller

Я пытался реализовать вашу ссылку с помощью cordova-plugin-safariviewcontroller, и связка ключей iCloud была правильно запущена. Дело в том, что вам нужно будет изменить некоторую логику в вашем приложении, поскольку переход к веб-просмотру с помощью window.location.href=https://your.urlбудет работать только для Android. Вам нужно будет определить платформу, а затем правильно перенаправить пользователя.