Нативные плагины Ionic перестали работать после обновления до WKWebView

Недавно я обновил свое приложение до WKWebView, и с тех пор мои родные плагины перестали работать. В частности, перестал работать плагин «Камера и геолокация». Хуже всего то, что никаких ошибок не выдает. Я пробовал протоколировать каждый шаг консоли, и, по-видимому, обещание geolocation.getCurrentPosition() никогда не разрешается.

Кроме того, я получаю предупреждение о том, что мои плагины находятся в несогласованном состоянии, и готовность устройства не запускается в течение 5000 мс.

Я пробовал следующие вещи:

  1. Удаление плагинов один за другим с помощью плагина ionic Cordova plugin rm, теперь событие готовности устройства запускается через 8 секунд, но, по крайней мере, оно запускается.
  2. Запуск приложения в браузере или симуляторе iOS работает нормально, и камера, и геолокация работают.
  3. Пытался создать новое приложение и пытался воспроизвести ошибку, но она работает в новом приложении.
  4. Пробовал удалить платформу Android и снова добавить.

Мое приложение работало нормально до обновления. Я обновился до WKWebView, потому что одна функция не работала на iOS. С тех пор, как я это сделал, мои родные плагины перестали работать. Есть ли способ исправить это. У меня есть репозиторий git, и я могу откатить этот коммит, но я думаю, что проблема в файлах, которые находятся в gitignore.


person Vivek    schedule 28.09.2018    source источник
comment
Вы также вручную удалили папку plugins (расположенную на том же уровне, что и папка platforms) после удаления платформы? Если вы установили неправильную версию плагина, и она все еще существует при повторном добавлении платформы, вы, вероятно, снова установите ту же версию.   -  person sebaferreras    schedule 28.09.2018
comment
@sebaferreras да, я пытался удалить и платформы, и папку плагинов вместе. Тем не менее проблема существует   -  person Vivek    schedule 29.09.2018


Ответы (2)


Вы установили этот плагин Cordova «cordova-plugin-wkwebview-engine»?

Также нам нужно установить «cordova-plugin-wkwebviewxhrfix» для обработки запроса xhr.

person Suresh Kumar Ariya    schedule 28.09.2018
comment
Нет, я не устанавливал. Я следовал официальной документации по обновлению до WKWebView, которая включает команду: ionic cordova plugin add cordova-plugin-ionic-webview --save - person Vivek; 28.09.2018
comment
Пожалуйста, попробуйте этот плагин и посмотрите, решит ли он проблему - person Suresh Kumar Ariya; 28.09.2018
comment
Я попытался добавить указанный вами плагин, но проблема все еще существует. - person Vivek; 28.09.2018

Мне удалось это исправить, удалив Cordova-plugin-ionic-webview с помощью следующей команды.

cordova plugin rm cordova-plugin-ionic-webview

После этого у меня возникли проблемы с аутентификацией Firebase, поэтому я выполнил следующую команду:

cordova plugin add cordova-plugin-whitelist

Я пока не знаю, что было причиной проблемы. Но, видимо, WKWebView не работает с собственными плагинами на Android. Теперь мне нужно найти обходной путь для добавления WKWebView на iOS.

person Vivek    schedule 29.09.2018