Работай!Вот что я сделал, чтобы заставить его работать.
Шаги
- В приложении в коде поля имени пользователя и пароля указаны ниже (обратите внимание на textContentType)
<TextInput
placeholder={'Enter username'}
autoCapitalize={'none'}
autoCorrect={false}
textContentType={'username'}
/>
<TextInput
placeholder={'Enter password'}
autoCapitalize={'none'}
autoCorrect={false}
secureTextEntry={true}
textContentType={'password'}
/>
Включение связанных доменов в качестве разрешения в мобильном обеспечении В XCode установите для связанных доменов указание на сайт, на котором будет размещен файл apple-app-site-association.
webcredentials:www.example.com
Не включайте часть URL-адреса в https, а не включайте конец, который будет / apple-app-site-association
Поместите файл apple-app-site-association в корневой каталог "/" вашего сайта и убедитесь, что он общедоступен.Вы можете проверить это в любом браузере, введя полный URL вашего сайта с таким окончанием, как:
https://www.example.com/apple-app-site-association
Вы можете попробовать это на URL YouTube и Amazon URL, чтобы увидеть ихФайлы app-site-association в качестве примера.
Удалите ваши предыдущие сборки с телефона и переустановите новые сборки с этими изменениями, и Apple должна установить соединение почти немедленно.Ваш первый успешный новый вход в систему со свежими учетными данными должен быть отображен во всплывающем окне «Сохранить пароль» для iOS.Все готово!
Теперь мои пользователи могут войти в систему с автозаполнением, и самое приятное, что iOS предлагает автозаполнение, используя Touch ID, ID лица или пароль в зависимости от настроек телефона пользователя.Таким образом, они могут войти в систему с помощью Touch ID или даже ID лица без дополнительной работы, необходимой в приложении RN, чтобы это работало.Еще лучше, если они сохранят его в iCloud, они могут перейти на другое устройство и при этом смогут войти в приложение с теми же учетными данными, если захотят.
Ошибки, которые я сделал:
Я допустил несколько ошибок, надеюсь, их можно избежать, прочитав следующее.
- Веб-сайт, на котором размещена ассоциация apple-app-site-association, должен соответствовать рекомендациям Apple.от корки до корки.Я сделал ошибку, первоначально используя временный сайт, размещенный на AWS.Этот URL-адрес AWS содержит http и https.Apple не понравилось это.Когда я переключился на веб-сайт, который размещал только https, он работал нормально.Это очень важно для работы «Сохранить пароль», иначе у Apple не будет ключа для сохранения ваших учетных данных (он использует домен вашего сайта в качестве ключа для сохранения учетных данных в цепочке для ключей Apple).
- Apple-app-site-association синтаксис имеет значение .Если хотя бы один из специальных символов выключен, он не будет работать.В моем оригинальном файле выше внимательно посмотрите на двойные кавычки, инкапсулирующие идентификатор приложения:
{
"webcredentials": {
"apps": [
“ZT978FY6AB.com.company.my.app”,
]
}
}
Они не являются стандартными двойными кавычками, и это привело к созданию файла, который не может бытьразбирается Apple.В случае сомнений скопируйте тот, который Apple предоставляет на своей странице документации, а затем измените его содержимое по мере необходимости.Изменяя его на обычные двойные кавычки, как показано ниже, исправлено:
{
"webcredentials": {
"apps": [
"ZT978FY6AB.com.company.my.app",
]
}
}
В RN все, что вам нужно, это textContentType = {'username'} и textContentType = {'password'}.Моя ошибка заключалась в том, что «newPassword» был необходим, чтобы вызвать диалоговое окно «Сохранить пароль».Нету.'newPassword' используется автозаполнением, чтобы предложить надежные пароли новым пользователям.По сути, используйте «newPassword» только в тех формах, где пользователь регистрируется.Не для форм входа в систему.
Что-то для пояснения, это решение работает для приложений, которые являются просто приложениями.Не требуется веб-сайт с логином, не нужно вводить учетные данные с веб-сайта в приложение и не требуются настройки входа в веб-браузер.Это не было очевидно, когда я просматривал документацию об автозаполнении.Веб-сайт, на котором размещена Apple-App-Site-Association, не должен иметь логин или что-либо в этом роде, это может быть просто простой веб-сайт с небольшим количеством информации (возможно, о приложении или компании, которая делает приложение)..