Подтвердить что ты не робот

Состояние WKWebView на Кордове iOS 9?

В iOS 8 представлен WKWebView, модернизированный веб-просмотр для iOS с большим количеством функций, особенно особенно JIT-компиляция для Javascript-кода, которая значительно повышает производительность.

Однако WKWebView на iOS 8 имел некоторые ошибки, которые помешали Кордове использовать его по умолчанию. AFAIK есть плагины, которые могут его использовать, но все они говорят "бета", "неполный" и т.д. Также, насколько я знаю, iOS 9 исправляет ошибки, которые остановили Кордову по умолчанию на WKWebView в iOS 8.

Итак, каково состояние WKWebView в Кордове на iOS 9? Кажется, я не могу найти никакой информации об этом. Кордова ли по умолчанию для WKWebView на iOS 9? Если нет, то почему нет, и может ли это официально разрешаться другим способом?

4b9b3361

Ответ 1

Новое редактирование: июнь 2019

Apple не удалила UIWebView в бета-версии iOS 13, так что, похоже, его можно использовать как минимум еще год.

Плагин Ionic WebView, начиная с версии 3.0.0, больше не использует веб-сервер, а вместо этого использует WKURLSchemeHandler, для которого требуется отказаться от поддержки iOS 10 и более ранних WKURLSchemeHandler.

Тем не менее, в бэкпорте большинство исправлений для ветки 2.x, у которых все еще есть веб-сервер для тех, кто хочет поддерживать iOS 10.

WKWebView не был интегрирован в cordova-ios 5.0.0, для его использования все еще требуется плагин. Должно быть там для версии 6.0.0.

И теперь доступен Ionic Capacitor, альтернатива Apache Cordova, которая с самого начала создавалась с помощью WKWebView. У него есть собственный набор плагинов, но он также совместим с большинством плагинов Cordova. https://capacitor.ionicframework.com/

Старое редактирование: август 2018

Apple отказалась от UIWebView в iOS 12 и, вероятно, удалит его в iOS 13.

Apache Cordova объявила, что в следующем основном выпуске (5.xx) она интегрирует cordova-plugin-wkwebview-engine в cordova-ios, но UIWebView прежнему будет работать и будет использоваться по умолчанию. Кроме того, вы сможете переключаться между ними во время выполнения, чтобы легко протестировать ваше приложение. В следующем выпуске будет WKWebView весь код UIWebView и WKWebView будет единственным вариантом.

Но у cordova-plugin-wkwebview-engine прежнему много проблем. Я все еще рекомендую использовать cordova-plugin-ionic-webview, так как использование GCDWebServer решает большинство проблем WKWebView.

Новое редактирование: ноябрь 2017

Команда Ionic выпустила новый плагин WKWebView, который больше не является ответвлением от Cordova и использует GCDWebServer внутреннего использования, а также GCDWebServer большинство известных проблем с плагином Cordova.

Новое редактирование: 24 августа 2016 г.

Обновлен только для добавления WKWebView плагину apache WKWebView созданному командой ionic Framework, который добавляет некоторые улучшения в плагин.

https://github.com/driftyco/cordova-plugin-wkwebview-engine

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

Новое редактирование: 9 декабря 2015 г.

была выпущена cordova ios 4.0.0 и версия 1.0.0 cordova-plugin-wkwebview-engine

Чтобы попробовать это:

cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add [email protected]
cordova plugin add cordova-plugin-wkwebview-engine

Как я уже говорил, cordova-plugin-wkwebview-engine поддерживает только iOS 9, на iOS 8 он будет использовать UIWebView и имеет некоторые известные проблемы

Если вы также хотите поддерживать iOS 8, вы можете использовать wkwebview-engine-localhost (экспериментальный) или cordova-plugin-wkwebview от Telerik, оба они используют локальный веб-сервер

https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine-localhost

СТАРЫЕ СООБЩЕНИЯ:

Вы можете использовать WKWebView с Cordova, используя доступные плагины WKWebView.

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

Некоторые из них, например, такие, как telerik https://github.com/Telerik-Verified-Plugins/WKWebView (со встроенным веб-сервером) или официальный представитель команды cordova https://github.com/apache/cordova -plugins/tree/master/wkwebview-engine-localhost (с веб-сервером в качестве плагина зависимостей)

Поскольку упомянутая ошибка исправлена в iOS 9, текущий плагин cordova (совместимый с iOS 8 и iOS 9 с использованием веб-сервера) был переименован в wkwebview-engine-localhost, а текущее имя cordova-plugin-wkwebview-engine будет использоваться для нового плагина, который будет поддерживать только iOS 9 и не будет использовать веб-сервер

Вы можете увидеть проблемы, чтобы отслеживать прогресс здесь

https://issues.apache.org/jira/browse/CB-9566

https://issues.apache.org/jira/browse/CB-9567

РЕДАКТИРОВАТЬ: Я принес новости https://shazronatadobe.wordpress.com/2015/09/09/apache-cordova-ios-4-0-0-and-wkwebview-support/

Поддержка WKWebView

Плагин cordova-plugin-wkwebview-engine будет только для iOS 9 и будет основным плагином. Разработка этого обновленного плагина все еще продолжается. Apple исправила ошибку, из-за которой мы не могли загрузить документы из file://urls, и это только iOS 9. На устройствах, отличных от iOS 9, cordova-ios откажется от использования UIWebView.

Старая версия этого плагина использовала локальный веб-сервер для загрузки вашего основного документа. Этот старый плагин можно использовать там, где вы хотите использовать WKWebView как в iOS 8, так и в iOS 9, но этот плагин останется в качестве эксперимента cordova-labs. Этот плагин имеет некоторую работу по рефакторингу.