Изменение веб-сайта по умолчанию на Apache Cordova – Android

В моей команде мы разрабатываем приложение, которое будет воспроизводиться на планшетах, проект был в значительной степени разработан и протестирован в Google Chrome.

В это время мы вставляем этот webapp на Apache Cordova, чтобы отобразить его как родное приложение на Android (и позже в iOS), но приложение не отображает хорошо на планшете, это из-за версии WebKit, которая изменяется На каждую версию Android и не работает, как в Chrome.

Вопрос в том, есть … Есть какой-то способ изменить версию webkit, которая работает с Apache Cordova? (Или любой другой движок веб-рендеринга)

В настоящее время нет возможности изменить версию Webkit, используемую Apache Cordova – это потому, что Cordova использует собственный компонент Android WebView, основанный на старой версии Webkit. Собственный Android WebView быстро становится IE 6 мобильного мира, если его еще нет.

EDIT WHOOO! Android 4.4 объявила, что по умолчанию WebView будет построен поверх Chromium! Это означает, что приложения Кордовы, работающие на Android 4.4, должны работать намного быстрее (новый JS-движок) и поддерживать дополнительные функции (вещи HTML5). Все еще есть много путаницы в этом новом WebView и что это значит. Лучшая статья, которую я прочитал до сих пор, находится здесь: http://www.mobilexweb.com/blog/android-4-4-kitkat-browser-chrome-webview

Многие люди поняли, что это становится большой проблемой для приложений Кордовы. Была экспериментальная работа по созданию версии WebView, которая использует источник Chromium (и, следовательно, обновленную версию Webkit (Blink?)), Вы можете просмотреть код здесь: https://github.com/pwnall/chromeview Check Перейдите на вкладку «Проблемы» и следуйте ей; Я получаю несколько писем каждую неделю от людей, отправляющих проблемы. Я думаю, что некоторые вилки опережают других, и, надеюсь, они приближаются. (Согласно архивам списка рассылки Cordova, Opera смогла получить эту работу над 2.2, но я не могу найти какой-либо код или что-то большее, чем прохождение ссылки).

Если вы можете получить WebView, созданный с помощью Chromium, не должно быть так сложно отключить, какой класс WebView использует Cordova; Я уверен, что эта способность уже была добавлена ​​в Кордову с этим и подобными коммитами: https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=commit;h= f6049881

Я думаю, что многие люди задерживают дыхание, что Android 5.0 наконец-то получит обновленный WebView, который использует источник Chromium, и будет обновляться синхронно с Chromium … если это так, это будет потрясающе, но это все равно оставляет нас с 4.0 И ниже, похоже, не работает вообще.

Я бы предложил проверить CrossWalk. Он разработан Intel и использует движок рендеринга Blink (тот же, что и хром). Вы упаковываете его с помощью своего приложения cordova, а затем можете использовать тот же движок веб-рендеринга на всех устройствах и версиях 4.0+.

https://crosswalk-project.org/

Примечание. Он добавляет около 20 МБ к размеру вашего приложения, но я бы сказал, что это незначительно для головных болей, это избавит вас от перекрестного тестирования устройств / версий, которое вам нужно будет сделать.

Проверьте здесь, чтобы начать работу с кроссвордом и кордорой. https://github.com/crosswalk-project/crosswalk-website/wiki/Create-Sample-App-With-Crosswalk-Cordova-Android

С выпуском Apache Cordova Android 4.0.0 он поддерживает «подключаемые WebViews».

Таким образом, использование Crosswalk с Cordova – это всего лишь вопрос установки кордово-плагина-перекрестка-webview .