Кордова-плагин-crosswalk-webview на iOS

Я создал проект cordova, добавив 2 платформы (android, ios) с некоторым плагином. Один из них - последняя версия cordova-plugin-crosswalk-webview (1.3.1). Я выбрал iOS8 и Android 4.0, как целевой Android. Все работает хорошо, я могу собрать платформу Android и iOS тоже.

В моем файле config.xml автоматически добавляется эта строка:

...
<preference name="xwalkVersion" value="14+" />
<preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" />
<preference name="xwalkMode" value="embedded" />
...

Для android обязательно воспользуюсь плагином crosswalk. С помощью инспектора Chrome я вижу, что для navigator.userAgent настроен Crosswalk, аналогично этому изображению

Мой пакет android-debug.apk теперь разделен на android-debug-armv7.apk и android-debug-x86.apk, а размер apk составляет около 25 МБ.

Но для iOS я не могу понять, работает пешеходный переход или нет. В инспекторе сафари моей виртуальной машины iOS переменная navigator.userAgent имеет следующий вид:

"Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X)  AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H141 (140222960683616)"

Как я могу быть уверен, какой браузер я использую на моей iOS? И, если конфигурации config.xml недостаточно, как я могу установить crosswalk-webview для iOS?

Я прочитал краткое руководство по пешеходному переходу для iOS, но думаю, что это не так. так понятно тем, кто пользуется Cordova CLI нормально. И ничего не написано в документации пакета npm cordova-plugin-crosswalk-webview.

ОБНОВЛЕНИЕ:

Следуйте выводам кордовы:

$ cordova plugin list
cordova-plugin-crosswalk-webview 1.3.1 "Crosswalk WebView Engine"


$ cordova platforms add ios

Adding ios project...
iOS project created with [email protected]
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/010_add_platform_class.js /Users/jedi/prj/appMobile
add to body class: platform-ios
Running command: /Users/jedi/prj/appMobile/hooks/after_prepare/030_resource_files.js /Users/jedi/prj/appMobile 
...
Installing "cordova-plugin-console" for ios
Installing "cordova-plugin-crosswalk-webview" for ios
Installing "cordova-plugin-device" for ios
..

person jedi    schedule 02.10.2015    source источник


Ответы (2)


crosswalk на iOS использует собственный WKWebView, который поддерживает indexedDB, вы можете запустить этот код javascript, чтобы проверить, WKWebView

if (window.indexedDB) {
    alert('WKWebView');
} else {
   alert('UIWebView');
}
person jcesarmobile    schedule 05.10.2015
comment
В вашем ответе есть что-то неправильное или, может быть, я неправильно понимаю. Мое приложение использует IndexDB для хранения данных, и когда я пробовал с iOS6, приложение работало с IndexDB без WKWebView, так что .. В чем разница от iOS8? - person jedi; 05.10.2015
comment
Нет, ваше приложение не может использовать IndexedDB, возможно, WebSQL, IdexedDB был включен в safari на iOS 8 и доступен только в WKWebView, а не в UIWebView caniuse.com/#feat=indexeddb Не поддерживается в Chrome для iOS или других WebView для iOS. - person jcesarmobile; 05.10.2015
comment
Правильно! в окне консоли инспектора сафари. indexedDB возвращает значение null. Итак ... На iOS мой пучадаптер переключился на WebSQL. Возникает вопрос: как я могу использовать WKWebView на iOS8? Я создал приложение для целевой версии 8.0 (img), но window.indexedDB продолжает возвращать нулевой. - person jedi; 06.10.2015
comment
Если вы правильно установили пешеходный переход, он должен использовать WKWebView. Вы также можете использовать WKWebView, используя этот плагин npmjs.com/package/cordova-plugin-wkwebview - person jcesarmobile; 06.10.2015
comment
Я установил пешеходный переход с cordova plugin add cordova-plugin-crosswalk-webview. Но для ios этого мало. Здесь я прочитал, что у меня есть 3 метода его использования: расширенный WKWebView, расширение Crosswalk Framework, поддержка плагинов Cordova. Но я не понимаю, что я должен выбрать. Я попытался скомпилировать crosswalk-ios и добавить его как библиотеку в проект, но теперь xcode 6.4 не может создать его при связывании с GCDWebServer. Для меня это первый раз с приложением Cordova для iOS. Я попробую cordova-plugin-wkwebview. - person jedi; 07.10.2015
comment
Установите плагин, который я вам сказал, он проще, чем пешеходный - person jcesarmobile; 07.10.2015
comment
Пробовал. Теперь у меня есть объект IndexDB. У меня проблема с ионным фоном, которую я могу решить, и много проблем с загрузкой пакета ionic js. Например: Error: undefined is not an object (evaluating 'a.nodeType') append@http://localhost:12344/vendor/ionic/js/ionic.bundle.min.js:200:331 http://localhost:12344/vendor/ionic/js/ionic.bundle.min.js:203:193 va@http://localhost:12344/vendor/ionic/js/ionic.bundle.min.js:45:296 $@http://localhost:12344/vendor/ionic/js/ionic.bundle.min.js:101:177 v@http://localhost:12344/vendor/ionic/js/ionic.bundle.min.js:90:204 .... - person jedi; 07.10.2015
comment
извините, я не знаю об этом - person jcesarmobile; 07.10.2015
comment
проблема исчезнет, ​​если я закрою веб-инспектор сафари. совершенно сумасшедший! - person jedi; 07.10.2015

Плагин Cordova Crosswalk добавляет только пешеходный переход для Android.

Обратите внимание, что для использования webkit для приложений в магазине приложений требуется переход для iOS, поэтому он, по сути, использует WKWebView. (Он использует webkit вместо обычного движка мигания, на котором основан хром)

См. Ответ Джесси на мой вопрос: Cordova + Crosswalk iOS все еще использует UIWebView

person csga5000    schedule 20.11.2015
comment
Взгляните на обновление, если плагин Cordova Crosswalk добавляет только Cross Walk для Android, вывод платформы Cordova тривиален - person jedi; 20.11.2015