Модернизация Android
Это руководство показывает, как изменить проекты Android для обновления с более ранних версий Cordova. Большинство этих инструкций относятся к проектам, созданным с более старой командой инструментов командной строки, которая предшествовала утилите cordova CLI. Обратитесь к Инструментарию командной строки для получения информации о том, как обновить версию CLI.
Обновление до 5.X.X
Лучший способ обновить до 5.X.X — просто удалить платформу Android из вашего проекта и повторно добавить её с новой версией. Например,
cordova platform remove android cordova platform add android@5.X.X
Если вы используете вышеуказанный метод, имейте в виду, что любые изменения, которые вы внесли в папку android platform, будут утеряны (редактирование содержимого этой папки не рекомендуется).
В качестве альтернативы, вы можете попробовать использовать скрипт обновления платформы. Для проектов без CLI запустите:
bin/update path/to/project
Для проектов с CLI:
Обновите версию CLI
cordova. Обратитесь к Инструментарию командной строки.Запустите
cordova platform update android@5.0.0в ваших существующих проектах.
Обновление плагинов для Android Marshmallow
Версия 5.0.0 добавляет поддержку уровня API Android 23 (Marshmallow). Android Marshmallow ввёл новую модель разрешений, которая может потребовать от вас обновления некоторых установленных плагинов, чтобы убедиться в их совместимости с более новыми телефонами. Более старые версии плагинов, которые не обрабатывают разрешения должным образом, могут привести к неожиданному аварийному завершению работы вашего приложения. Обратите внимание, что это не касается всех плагинов, а только тех, которые обращаются к разрешениям Android, считающимся опасными (см. таблицу опасных разрешений).
Следующие основные плагины затронуты этим изменением и должны быть обновлены для использования с cordova-android 5.0.0+:
| Плагин | Минимальная совместимая версия |
|---|---|
| cordova-plugin-camera | 2.0.0 |
| cordova-plugin-contacts | 2.0.0 |
| cordova-plugin-file | 4.0.0 |
| cordova-plugin-geolocation | 2.0.0 |
| cordova-plugin-media | 2.0.0 |
Для плагинов, не относящихся к основным, вы можете проверить, запрашивает ли плагин опасное разрешение, проверив файл plugin.xml плагина. Если плагин использует разрешения Android, вы увидите записи в plugin.xml, которые их объявляют. Например:
<uses-permission android:name="android.permission.PERMISSION_NAME" />
Где PERMISSION_NAME заменено именем Android разрешения. Файл plugin.xml можно найти в папке плагина в вашем проекте Cordova (например, plugins/example-plugin/plugin.xml). Обратитесь к документации любых плагинов, использующих опасные разрешения, чтобы определить, какие шаги необходимо предпринять для обеспечения совместимости с cordova-android 5.0.0+.
Переход на версию 4.0.0
Требуются определенные шаги по обновлению, чтобы воспользоваться значительными изменениями в версии 4.0.0. Сначала необходимы общие шаги по обновлению, как указано ниже.
Для проектов без CLI, выполните:
bin/update path/to/project
Для проектов с CLI:
Обновите версию CLI
cordova. См. Интерфейс командной строки.Выполните
cordova platform update android@4.0.0в ваших существующих проектах.
Обновление белого списка
Вся функциональность белого списка теперь реализована через плагин. Без плагина ваше приложение больше не защищено белым списком после обновления до версии 4.0.0. Cordova имеет два плагина белого списка, которые предоставляют разные уровни защиты.
-
Плагин
cordova-plugin-whitelist(РЕКОМЕНДУЕТСЯ)- Этот плагин очень рекомендуется, так как он более безопасен и настраиваем, чем белый список в предыдущих версиях
- См. cordova-plugin-whitelist для получения подробной информации о необходимых изменениях конфигурации
- Выполните:
cordova plugin add cordova-plugin-crosswalk-webview
-
Плагин
cordova-plugin-legacy-whitelist- Этот плагин обеспечивает такое же поведение белого списка, как и в предыдущих версиях. См. cordova-plugin-legacy-whitelist
- Изменения конфигурации не требуются, но он предоставляет меньше защиты, чем рекомендуемый плагин
- Выполните:
cordova plugin add cordova-plugin-legacy-whitelist
Использование WebView Crosswalk
По умолчанию ваше приложение будет продолжать использовать системный WebView, предоставляемый устройством. Если вы хотите использовать WebView Crosswalk вместо этого, просто добавьте плагин Crosswalk:
cordova plugin add cordova-plugin-crosswalk-webview
После добавления плагина ваше приложение получит установленный и правильно настроенный WebView Crosswalk.
Обновление до плагина Splashscreen
Если ваше приложение использует экран загрузки, эта функциональность была перенесена в плагин. Параметры конфигурации экранов загрузки не изменились. Единственный шаг обновления — добавить плагин:
cordova plugin add cordova-plugin-splashscreen
Обновление до версии 3.7.1 с версии 3.6.0
Для проектов без CLI, выполните:
bin/update path/to/project
Для проектов с CLI:
Обновите версию командной строки
cordova. См. Интерфейс командной строки.Запустите
cordova platform update androidв существующих проектах.
Переход на версию 3.3.0 с версии 3.2.0
Следуйте тем же инструкциям, что и для 3.2.0.
Начиная с версии 3.3.0, среда выполнения Cordova теперь компилируется как библиотека Android, а не как JAR-файл. Это не должно повлиять на использование командной строки, но пользователям IDE потребуется импортировать вновь добавленный проект MyProject-CordovaLib в свою рабочую область.
Переход на версию 3.2.0 с версии 3.1.0
Для проектов, созданных с помощью командной строки cordova:
Обновите версию командной строки
cordova. См. Интерфейс командной строки.Запустите
cordova platform update android
Для проектов, не созданных с помощью командной строки cordova, выполните:
bin/update <project_path>
ВНИМАНИЕ: На Android 4.4 - Android 4.4.3 создание элемента ввода файла с type="file" не откроет диалоговое окно выбора файла. Это регрессия в Chromium на Android, и проблема воспроизводится в автономном браузере Chrome на Android (см. http://code.google.com/p/android/issues/detail?id=62220) Предлагаемое решение — использовать плагины FileTransfer и File для Android 4.4. Вы можете прослушивать событие onClick от input type="file" и затем отображать интерфейс выбора файла. Для связи данных формы с загрузкой вы можете использовать JavaScript для добавления значений формы к запросу POST с несколькими частями, который отправляет FileTransfer.
Переход на версию 3.1.0 с версии 3.0.0
Для проектов, созданных с помощью командной строки cordova:
Обновите версию командной строки
cordova. См. Интерфейс командной строки.Запустите
cordova platform update android
Для проектов, не созданных с помощью командной строки cordova, выполните:
bin/update <project_path>
Переход к командной строке (3.0.0) с версии 2.9.0
Создайте новый проект Apache Cordova 3.0.0 с помощью cordova CLI, как описано в Руководстве по командной строке.
Добавьте платформы в проект cordova, например:
cordova platform add android.Скопируйте содержимое каталога
wwwвашего проекта в каталогwwwв корне проекта cordova, который вы только что создали.Скопируйте все нативные ресурсы из старого проекта в соответствующие каталоги под
platforms/android: в этом каталоге находится ваш нативный проект cordova-android.Используйте инструмент cordova CLI для установки необходимых плагинов. Обратите внимание, что CLI обрабатывает все основные API как плагины, поэтому их может потребоваться добавить. Только плагины 3.0.0 совместимы с CLI.
Обновление до 3.0.0 с 2.9.0
Создайте новый проект Apache Cordova Android.
Скопируйте содержимое каталога
wwwв новый проект.Скопируйте все нативные ресурсы Android из каталога
resв новый проект.Скопируйте любые установленные плагины из подкаталогов
srcв новый проект.Убедитесь, что все устаревшие ссылки
<plugin>из вашего старого файлаconfig.xmlобновлены до новой спецификации<feature>.Обновите все ссылки на пакет
org.apache.cordova.apiнаorg.apache.cordova.
ПРИМЕЧАНИЕ: все основные API были удалены и должны быть установлены как плагины. Для получения подробной информации обратитесь к руководству Использование Plugman для управления плагинами.
Обновление до 2.9.0 с 2.8.0
- Запустите
bin/update <project_path>.
Обновление до 2.8.0 с 2.7.0
Удалите
cordova-2.7.0.jarиз каталогаlibsпроекта.Добавьте
cordova-2.8.0.jarв каталогlibsпроекта.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova.jsв ваш проект.Обновите свой HTML-код для использования нового файла
cordova.js.Скопируйте файл
res/xml/config.xml, чтобы он соответствовал файлуframework/res/xml/config.xml.Обновите
framework/res/xml/config.xml, чтобы он имел аналогичные настройки, как и ранее.Скопируйте файлы из
bin/templates/cordovaв каталогcordovaпроекта.
Обновление до 2.7.0 с 2.6.0
Удалите
cordova-2.6.0.jarиз каталога проектаlibs.Добавьте
cordova-2.7.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.7.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-2.7.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Обновите
framework/res/xml/config.xml, чтобы он имел аналогичные настройки, как и ранее.Скопируйте файлы из
bin/templates/cordovaв каталог проектаcordova.
Обновление до 2.6.0 с 2.5.0
Удалите
cordova-2.5.0.jarиз каталога проектаlibs.Добавьте
cordova-2.6.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.6.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-2.6.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Обновите
framework/res/xml/config.xml, чтобы он имел аналогичные настройки, как и ранее.Скопируйте файлы из
bin/templates/cordovaв каталог проектаcordova.
Запустите bin/update <project> с путем к проекту, указанным в каталоге Cordova Source.
Обновление до 2.5.0 с 2.4.0
Удалите
cordova-2.4.0.jarиз каталога проектаlibs.Добавьте
cordova-2.5.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.5.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-2.5.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Обновите
framework/res/xml/config.xml, чтобы он имел аналогичные настройки, как и ранее.Скопируйте файлы из
bin/templates/cordovaв каталог проектаcordova.
Обновление до 2.4.0 с 2.3.0
Удалите
cordova-2.3.0.jarиз каталогаlibsпроекта.Добавьте
cordova-2.4.0.jarв каталогlibsпроекта.Если вы используете Eclipse, пожалуйста, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.4.0.jsв свой проект.Обновите свой HTML, чтобы использовать новый файл
cordova-2.4.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Скопируйте файлы из
bin/templates/cordovaв каталогcordovaпроекта.
Обновление с 2.2.0 до 2.3.0
Удалите
cordova-2.2.0.jarиз каталогаlibsпроекта.Добавьте
cordova-2.3.0.jarв каталогlibsпроекта.Если вы используете Eclipse, пожалуйста, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.3.0.jsв свой проект.Обновите свой HTML, чтобы использовать новый файл
cordova-2.3.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Скопируйте файлы из
bin/templates/cordovaв каталогcordovaпроекта.
Обновление с 2.1.0 до 2.2.0
Удалите
cordova-2.1.0.jarиз каталогаlibsпроекта.Добавьте
cordova-2.2.0.jarв каталогlibsпроекта.Если вы используете Eclipse, пожалуйста, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.2.0.jsв свой проект.Обновите свой HTML, чтобы использовать новый файл
cordova-2.2.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Скопируйте файлы из
bin/templates/cordovaв каталогcordovaпроекта.
Обновление с 2.0.0 до 2.1.0
Удалите
cordova-2.0.0.jarиз каталогаlibsпроекта.Добавьте
cordova-2.1.0.jarв каталогlibsпроекта.Если вы используете Eclipse, пожалуйста, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.1.0.jsв свой проект.Обновите свой HTML, чтобы использовать новый файл
cordova-2.1.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.Скопируйте файлы из
bin/templates/cordovaв каталогcordovaпроекта.
Обновление с 1.9.0 до 2.0.0
Удалите
cordova-1.9.0.jarиз каталога проектаlibs.Добавьте
cordova-2.0.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-2.0.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-2.0.0.js.Скопируйте
res/xml/config.xml, чтобы соответствоватьframework/res/xml/config.xml.
В выпуске 2.0.0 файл config.xml объединяет и заменяет файлы cordova.xml и plugins.xml. Старые файлы устарели, и хотя они по-прежнему работают в версии 2.0.0, они перестанут работать в будущих выпусках.
Обновление с 1.8.1 до 1.9.0
Удалите
cordova-1.8.0.jarиз каталога проектаlibs.Добавьте
cordova-1.9.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.9.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-1.9.0.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Из-за введения CordovaWebView в выпуске 1.9.0 плагины сторонних разработчиков могут не работать. Эти плагины должны получить контекст из CordovaInterface, используя getContext() или getActivity(). Если вы не опытный разработчик Android, обратитесь к автору плагина и добавьте эту задачу в их систему отслеживания ошибок.
Обновление с 1.8.0 до 1.8.0
Удалите
cordova-1.8.0.jarиз каталога проектаlibs.Добавьте
cordova-1.8.1.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.8.1.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-1.8.1.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление с 1.7.0 до 1.8.0
Удалите
cordova-1.7.0.jarиз каталога проектаlibs.Добавьте
cordova-1.8.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.8.0.jsв свой проект.Обновите свой HTML для использования нового файла
cordova-1.8.0.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление с 1.7.0 до 1.8.0
Удалите
cordova-1.7.0.jarиз каталога проектаlibs.Добавьте
cordova-1.8.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.8.0.jsв свой проект.Обновите свой HTML для использования нового файла
cordova-1.8.0.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление с 1.6.1 до 1.7.0
Удалите
cordova-1.6.1.jarиз каталога проектаlibs.Добавьте
cordova-1.7.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.7.0.jsв свой проект.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление с 1.6.0 до 1.6.1
Удалите
cordova-1.6.0.jarиз каталога проектаlibs.Добавьте
cordova-1.6.1.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.6.1.jsв свой проект.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление с 1.5.0 до 1.6.0
Удалите
cordova-1.5.0.jarиз каталога проектаlibs.Добавьте
cordova-1.6.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.6.0.jsв свой проект.Обновите свой HTML для использования нового файла
cordova-1.6.0.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.Замените
res/xml/phonegap.xmlнаres/xml/cordova.xml, чтобы соответствоватьframework/res/xml/cordova.xml.
Обновление до 1.5.0 с 1.4.0
Удалите
phonegap-1.4.0.jarиз каталога проектаlibs.Добавьте
cordova-1.5.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
cordova-1.5.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
cordova-1.5.0.js.Обновите
res/xml/plugins.xmlв соответствии сframework/res/xml/plugins.xml.Замените
res/xml/phonegap.xmlнаres/xml/cordova.xmlв соответствии сframework/res/xml/cordova.xml.
Обновление до 1.4.0 с 1.3.0
Удалите
phonegap-1.3.0.jarиз каталога проектаlibs.Добавьте
phonegap-1.4.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
phonegap-1.4.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
phonegap-1.4.0.js.Обновите
res/xml/plugins.xmlв соответствии сframework/res/xml/plugins.xml.Обновите
res/xml/phonegap.xmlв соответствии сframework/res/xml/phonegap.xml.
Обновление до 1.3.0 с 1.2.0
Удалите
phonegap-1.2.0.jarиз каталога проектаlibs.Добавьте
phonegap-1.3.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
phonegap-1.3.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
phonegap-1.2.0.js.Обновите
res/xml/plugins.xmlв соответствии сframework/res/xml/plugins.xml.Обновите
res/xml/phonegap.xmlв соответствии сframework/res/xml/phonegap.xml.
Обновление до 1.2.0 с 1.1.0
Удалите
phonegap-1.1.0.jarиз каталога проектаlibs.Добавьте
phonegap-1.2.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите свой проект Eclipse и выполните очистку.
Скопируйте новый
phonegap-1.2.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
phonegap-1.2.0.js.Обновите
res/xml/plugins.xmlв соответствии сframework/res/xml/plugins.xml.Обновите
res/xml/phonegap.xmlв соответствии сframework/res/xml/phonegap.xml.
Обновление до 1.1.0 с 1.0.0
Удалите
phonegap-1.0.0.jarиз каталога проектаlibs.Добавьте
phonegap-1.1.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
phonegap-1.1.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
phonegap-1.1.0.js.Обновите
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
Обновление до 1.0.0 с 0.9.6
Удалите
phonegap-0.9.6.jarиз каталога проектаlibs.Добавьте
phonegap-1.0.0.jarв каталог проектаlibs.Если вы используете Eclipse, обновите проект Eclipse и выполните очистку.
Скопируйте новый
phonegap-1.0.0.jsв свой проект.Обновите ваш HTML, чтобы использовать новый файл
phonegap-1.0.0.js.Добавьте
res/xml/plugins.xml, чтобы соответствоватьframework/res/xml/plugins.xml.
© 2012, 2013, 2015 The Apache Software Foundation
Licensed under the Apache License 2.0.
https://cordova.apache.org/docs/en/7.x/guide/platforms/android/upgrade.html