С PhoneGap я познакомился относительно недавно, и то что с помощью него можно создавать реально работающие приложения на любых платформах (как уверяет документация) конечно же, шокировало меня. Неужели теперь можно писать JS веб-приложения и выкидывать их на Google Play, AppStore или Windows Phone Store!
Конечно же потом покурив несколько форумов и досконально прочитав документацию PhoneGap я понял, что в принципе никакого волшебства нет. PhoneGap просто воссоздает, эмулирует…в общем запускает приложение в своем браузере. Честно говоря в начале я это и подозревал, но все же … авось приложение все-таки каким-то другим способом запускается. В общем и целом я захотел написать какое нибудь легкое приложение для своей мобилки, но не тут то было. Что бы создать хотя бы проект под Android я столкнулся с кучей проблем о которых с расскажу дальше.
Создать проект на PhoneGap можно двумя способами:
- С помощью командной строки и Android Studio;
- С помощью PhoneGap Desktop приложения и вашего телефона.
Сейчас я разберу второй способ т.к он более легкий и как бы включает в себя первый способ, но только без Android Studio. Итак, вся инструкция приведена вот по этой ссылке. Но опять же как всегда в документации воду напишут, а самое главное пропустят. Для начала вам надо установить NodeJS, Cordova и PhoneGap. Как установить NodeJS я тут описывать не буду, но для установки Cordova нам потребуется уже установленный NodeJS и теперь остается прописать одну строчку в командной строке.
npm install -g cordova
После этого устанавливаем PhoneGap также в одну строчку командной строки.
npm install -g phonegap
После этого можно спокойно устанавливать PhoneGap Desktop и создавать проект, следуя инструкции. Кстати не забудьте скачать специальное PhoneGap Mobile приложение для своего телефона. Теперь запускаете сервер на PhoneGap Desktop и получаете вот такое вот сообщение:

После этого запускаете приложение PhoneGap Mobile у себя на телефоне и вбиваете туда адрес. Запустилось?? 😈 Не думаю. Давайте разберем ошибки которые могут возникнуть и которые у меня просто появлялись одна за одной.
Unable to download archive from the server. Please upgrade the PhoneGap CLI or check your network settings.
Такая ошибка вылетает на телефоне после того как он пытается подключиться к серверу. Для того что бы убрать эту ошибку придется потанцевать много с бубном. Для начала проверьте ваше подключение к интернету. Если с подключением все в порядке, тогда возвращаемся к командной строке и вписываем следующую строчку и пробуем подключиться заново.
npm update -g phonegap
Если ошибка исчезла и ваше приложение загрузилось – можете радоваться. Если нет, продолжаем танцевать дальше. Теперь надо проверить «на свежесть» версию PhoneGap Desktop. Если версия свежая, тогда надо опять вернуться в командную строку и через нее перейти в корень проекта и там прописать вот такую строчку.
cordova platform add android
Теперь проект должен запуститься. В любом случае у меня все запустилось и на моем телефоне появилась долгожданная надпись «Device is Ready». Теперь вы смело можете открывать файл index.html в папке www которая лежит в корне проекта и теперь все те изменения, которые вы делаете в файле index.html будут отображаться у вас на телефоне.
Также рекомендую установить на будущее ANT и Java SDK. Не думаю, что из за их отсутствия может что-то пойти не так, но все же рекомендую до кучи их тоже поставить.
После запуска проекта решил узнать, что же за браузер такой использует PhoneGap. Прописал в index.html вот такую вот строчку.
alert(navigator.userAgent);
В итоге на телефоне вылетел вот такой алерт, смысл содержания, которого я так и не понял к сожалению. 🙁
