Ответ 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. Этот плагин имеет некоторую работу по рефакторингу.