2015-07-16 4 views
2

Я использую this cordova tutorial, чтобы попытаться настроить приложение cordova/phonegap. Я разрабатываю Windows, у меня установлен node.js, и я работаю в командной строке Node.js. Я скачал и установил:
и have added it to PATH,
downloaded antinstalled it и,
Java JDK также является downloaded и установлен.Как добавить плагины и платформы cordova

Мой PATH содержит следующие:
%ANT_HOME%\bin;%JAVA_HOME%\bin;C:\Program Files (x86)\Android\android-sdk\tools

Typing android в ЦМД открывает менеджер Android SDK.
Ввод java показывает java-справку по командам.
Ввод ant -version показывает версию муравья (1.9.6).
Ввод текста cordova показывает команды команды cordova.

Я успешно установил кордову с npm install -g cordova и создал каталог моей мастерской. Затем я попытался добавить платформы и плагины, предложенные в учебнике. Вот командная строка вывода для только андроид платформы и плагин устройства:

C:\Users\Roman\All\Work\CriticalID\again>cordova platforms add android 
npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz 
npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz 

C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin add cordova-plugin-device 
Fetching plugin "cordova-plugin-device" via npm 
npm http GET https://registry.npmjs.org/cordova-plugin-device 
npm http 304 https://registry.npmjs.org/cordova-plugin-device 
npm http GET https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz 
npm http 200 https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz 

Проверяется установлены платформы и плагины:

C:\Users\Roman\All\Work\CriticalID\workshop>cordova platforms ls 
Installed platforms: 
Available platforms: amazon-fireos, android, blackberry10, browser, firefoxos, windows, windows8, wp8 

C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin ls 
No plugins added. Use `cordova plugin add <plugin>`. 

C:\Users\Roman\All\Work\CriticalID\workshop>cordova build 
No platforms added to this project. Please use `cordova platform add <platform>`. 

Ни одна из платформ или плагинов, которые я не установлены показывают, как установлен. Папки workshop\plugins и workshop\platforms тоже пустые.

Учебные приложения работают в моем браузере и телефоне (помещаются в телефонные и телефонные приложения PhoneGap), но когда я пытаюсь выполнить более сложное руководство, например, часть 12 из this PhoneGap tutorial, где требуется API-интерфейс камеры, камера не поддерживается в браузере (очевидно) и на моем телефоне (Error: Camera API is not supported).

EDIT

Я решил эту проблему, добавив Android платформы и плагинов с помощью мерзавец; Решение ниже. Однако, если я что-то пропустил, сообщите мне.
Кажется, что config.xml должен выполнять некоторые функции, но я не смог понять это.
Все для Кордовы 5.1.1

ответ

0

Я считаю, что документация устарела, что дало мне проблемы. Кроме того, некоторые config.xml и файловая структура отличаются при создании приложения с нуля с помощью Cordova или с помощью PhoneGap или PhoneGap.

Прежде всего, эти строки кода, кажется, не работает при создании приложения с Кордова:

cordova platforms add android 
cordova plugin add org.apache.cordova.device 
cordova plugin add cordova-plugin-device 

Все платформы и модули должны быть добавлены с помощью Git. Android platform here, и a list of plugins here.

Так, например, чтобы получить приложение Кордова по умолчанию (для закапывания см вопрос выше), скопируйте и вставьте следующий код в CMD:

cd into your working directory 
cordova create workshop com.name.workshop Workshop 
cd workshop 
cordova platform add https://github.com/apache/cordova-android.git 
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-whitelist.git 
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git 

Обратите внимание, что платформы должны быть добавлены до плагинов. Я добавил whitelist, потому что config.xml хотел, и я также добавил device и console, потому что учебник сказал мне.

Теперь, если вы наберете cordova platform ls и cordova plugin ls, тогда вам должен быть возвращен не пустой список.

Для полноты, если вы сейчас хотели бы использовать камеру: 1) Скопируйте следующий текст в index.html:

<img id='image' src='' style="position:absolute;margin:5px;left:0px;top:0px;"/> 
<button id="test_camera">Camera Test</button> 
<script type="text/javascript" src="js/test.js"></script> 

2) Создайте новый скрипт test.js, и вставьте в него следующее. Я не люблю запутанный путь учебников создать эту функцию, это путь более прямое:

var changePicture = function() { 
    if (!navigator.camera) { 
     alert("Camera API not supported", "Error"); 
     return; 
    } 
    var options = { quality: 50, 
         destinationType: Camera.DestinationType.DATA_URL, 
         sourceType: 1,  // 0:Photo Library, 1=Camera, 2=Saved Album 
         encodingType: 0  // 0=JPG 1=PNG 
        }; 

    navigator.camera.getPicture(
     function(imgData) { 
      $('#image').attr('src', "data:image/jpeg;base64," + imgData); 
     }, 
     function() { 
      alert('Error taking picture', 'Error'); 
     }, 
     options); 

    return false; 
}; 

$("#test_camera").on('click', function() { 
    changePicture() 
}) 

Вы можете оставить код инициализации в index.js в одиночку.

Теперь используйте приложение PhoneGap для настольных компьютеров и приложение PhoneGap для проверки приложения на своем телефоне. Я довольно легко. Я использую для этого окна и Android, я не знаю ни о каких других системах.

Смежные вопросы