Мост Кордова не срабатывает после возврата биометрического пароля на iOS (устройство готово/document.ready не срабатываеIOS

Программируем под IOS
Ответить
Anonymous
 Мост Кордова не срабатывает после возврата биометрического пароля на iOS (устройство готово/document.ready не срабатывае

Сообщение Anonymous »

Мы столкнулись с проблемой в нашем гибридном приложении iOS Cordova (WKWebView) во время биометрической аутентификации → резервного пароля.
Среда:
Cordova iOS 7.x (WKWebView)
Нативный плагин обрабатывает Face ID/Touch ID и резервный пароль
Веб-слой ( ServletController) загружает страницы через серверную пересылку (не полная навигация)
Описание проблемы:
  • При успешной биометрической аутентификации → все работает нормально.
  • Когда вход с паролем используется напрямую → также работает.
Но когда биометрическая аутентификация не работает и возвращается к паролю, происходит следующее:
Нативный плагин отправляет два обратных вызова (биометрический сбой → успешный пароль). Обратный вызов успешного ввода пароля загружает домашнюю страницу внутри того же WKWebView. HTML отображается, но document.ready и deviceready никогда не срабатывают. Любой вызов Cordova (например, showHomeScreeninApp("success")) выдает ошибку ReferenceError: Невозможно найти переменную: cordova. Если пользователь сворачивает и снова открывает приложение, все внезапно начинает работать.
Что мы подозреваем:
Нативный UIViewController, обрабатывающий экран пароля, срывает или отсоединяет мост Кордовы, когда он закрывается, поэтому контекст WebView остается, но мост исчезает. Веб-контент перезагружается через пересылку сервлета, но новые события жизненного цикла не запускаются.
Проверено:
  • Обходной путь JS, который повторно внедряет cordova.js и повторно запускает deviceready → работает временно.
  • Проверено, что cordova.js присутствует и загружено.
  • Проблема возникает только на iOS, а не на Android.
Ожидаемое поведение:
После успешного ввода пароля (даже если сначала произошел сбой биометрических данных) WKWebView должен сохранить мост Cordova и запустить обычный жизненный цикл готовности устройства/JS для запуска домашней страницы. правильно.
Вопрос:
Какие изменения необходимы на родной стороне iOS (плагин или жизненный цикл WKWebView), чтобы мост Кордова оставался активным или правильно прикреплялся к нему после перехода биометрия → пароль?

Подробнее здесь: https://stackoverflow.com/questions/797 ... vice-ready
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»