2014-01-29 6 views
0

Я работаю над поиском приложений для разработки приложений с помощью Google Glass. Очень хорошо понятно, что в родной среде - разработка приложений прямолинейна. (С использованием ГДК - стекла Dev Kit) Coming развития с Cordova, есть Cordova плагины сделаны для стекла и размещены на Github - проверьте ссылки здесь -Добавление плагина Google Glass 'cordova без использования Node JS

  1. Glass core Link
  2. Glass Touch Link
  3. Glass Gesture Link

Ну, теперь я понимаю, что эти плагины могут быть добавлены в мое приложение с помощью командной строки Node JS. Есть несколько ограничений, и я не могу установить Node JS в моей среде. Есть ли способ добавить эти плагины в мое приложение, не используя Node? Моя версия Cordova - 2.7.0.

Как добавить файлы .java вручную? и где я должен их добавлять?

ответ

1

Да, это ужасно странно, но вы можете это сделать.

шаги, чтобы следовать являются:

  1. Clone хранилище - git clone https://github.com/aphex/cordova-glass-core.git
  2. скопируйте файл JavaScript в папку WWW (обычно содержится в директории под названием 'JS' или что-то, в 'WWW').
  3. Убедитесь, что ваш файл JavaScript указан в вашем файле HTML, чтобы вызвать собственный код.
  4. Добавить файлы Java в пакет отображения (в данном случае com.rossgerbasi.cordova.glass)
  5. Alter config.xml, чтобы вызвать их (посмотрите в plugin.xml - вы можете, надеюсь, декодировать это, чтобы выяснить, какие настройки вам требуется

Plugman (который является обработчиком плагин Кордова) опрашивает plugin.xml автоматизировать процесс копирования и вставки Config.xml/AndroidManifest.xml настройки и файлы в нужное место без ручного вмешательства. - так что есть нет причин, почему это невозможно сделать вручную. Это немного затруднительно.

Декодирование plugin.xml файл следующим образом (с помощью: http://cordova.apache.org/docs/en/3.3.0/plugin_ref_spec.md.html#Plugin%20Specification в качестве ссылки):

<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0" 
     id="com.rossgerbasi.cordova.glass.core" 
     version="0.0.2"> 

    <name>GlassCore</name> 

    <keywords>cordova,google glass,glass,android</keywords> 

    <description> 
     Plugin to add Google Glass Support to your Cordova Application. Additional JS plugin allows developer to get voice prompt speech to text results. 
    </description> 

    <license>MIT</license> 

    <author>Ross Gerbasi</author> 

    <engines> 
     <engine name="cordova" version=">=3.0"/> 
    </engines> 

    <js-module src="www/cordova-glass-core.js" name="GlassCore"> 
     <clobbers target="com.rossgerbasi.cordova.glass.core"/> 
    </js-module> 

    <!-- android --> 
    <platform name="android"> 
     <config-file target="res/xml/config.xml" parent="/widget"> 
      <preference name="fullscreen" value="true"/> 
      <feature name="GlassCore"> 
       <param name="android-package" value="com.rossgerbasi.cordova.glass.GlassCorePlugin"/> 
       <param name="onload" value="true"/> 
      </feature> 
     </config-file> 

     <config-file target="AndroidManifest.xml" parent="/manifest/application"> 
      <activity 
        android:name="com.rossgerbasi.cordova.glass.GoogleGlassActivity" 
        android:finishOnTaskLaunch="true" 
        android:launchMode="singleInstance" 
        android:noHistory="true" 
        android:theme="@style/GlassTheme"> 
       <intent-filter> 
        <action android:name="com.google.android.glass.action.VOICE_TRIGGER"/> 
       </intent-filter> 
       <meta-data 
         android:name="com.google.android.glass.VoiceTrigger" 
         android:resource="@xml/app_launch_voice_trigger"/> 
      </activity> 
     </config-file> 

     <config-file target="AndroidManifest.xml" parent="/manifest"> 
      <uses-permission android:name="android.permission.INTERNET"/> 
      <uses-library android:name="com.google.android.glass" android:required="true"/> 
     </config-file> 

     <source-file 
       src="res/xml/app_launch_voice_trigger.xml" target-dir="res/xml"/> 

     <source-file 
       src="res/values/styles.xml" target-dir="res/values"/> 

     <source-file 
       src="res/values/glass.xml" target-dir="res/values"/>     

     <source-file src="src/com/rossgerbasi/cordova/glass/GoogleGlassActivity.java" 
        target-dir="src/com/rossgerbasi/cordova/glass"/> 
     <source-file src="src/com/rossgerbasi/cordova/glass/GlassCorePlugin.java" 
        target-dir="src/com/rossgerbasi/cordova/glass"/> 
    </platform> 
</plugin> 

Основной тег plugin - это хорошо. name, keywords, description и т. Д. - это всего лишь биты метаданных, которые используются plugins.cordova.io, если вы размещаете их там (я лично так не пропускаю их).

engines детализированы минимальные требования к кордове для плагина. Это говорит нам хотя бы о Кордове 3.x, но, в любом случае, все равно.

js-module используется двигателем Cordova для настройки автоматической ссылки на JavaScript в com.rossgerbasi.cordova.glass.core.GlassCore, доступ к которой вы можете получить в своем JavaScript.

platform name="android" - это часть plugin.xml, которую Кордова использует для настройки плагина для Android-среды - в Cordova 3.x вы добавляете свои платформы в один централизованный проект, и поэтому это необходимо CLI, чтобы знать, что делать если платформа Android «установлена» (т.е. добавлена ​​в проект Cordova 3.x). В вашем случае вы используете Cordova 2.x для Android - так что это по-прежнему актуально для нас. Нотабене когда вы перейдете на Кордову 3.x, тогда вы можете определить все свои платформы с помощью этого тега, например platform name="ios" для обработки установки iOS Xcode.

Глядя на сторону platform тега: config-file используется, чтобы содержать текст, который вы хотите вставить в config.xml - так config.xml содержит соответствие между вашим JavaScript и машинным кодом, это должно соответствовать. Я мог бы написать полный абзац только по этому тегу, но я бы рекомендовал посмотреть другие плагины, чтобы понять, как они работают. Атрибут target сообщает CLI, который должен скопировать этот файл: он указывает на res/xml/config.xml, где находится файл config.xml от Android. Поэтому откройте это и изучите его, чтобы понять его. Вы можете скопировать теги (preference и feature из plugin.xml сюда).

Существует второй config-file, который на этот раз указывает на AndroidManifest.xml с target, являющимся AndroidManifest.xml (т. Е. Тот, что находится в корне проекта Eclipse). Вы также увидите, что есть тег /manifest/application, который указывает на древовидную структуру в AndroidManifest.xml - так что вы найдете тег manifest и тег application внутри этого - и вы можете скопировать весь тег activity здесь.

Существует третийconfig-file тег - это имеет parent атрибут "/manifest" так, как вы можете себе представить, текст, содержащийся внутри здесь будет идти в manifest тег AndroidManifest.xml - и жить здесь. Этот третий тег config-file содержит сведения о разрешениях, которые пакет класса требует от системы Android, для выполнения.

Далее следующие пять ярлыков source-file. src сообщает вам, где вы можете найти исходный файл в локальном каталоге, по сравнению с plugin.xml, поэтому первый экземпляр вы можете найти в поле res/xml/app_launch_voice_trigger.xml, и он должен быть вставлен в/res/xml/в каталоге проекта Eclipse (т. е. где файл вашего проекта project.xml был из тега config-file выше).

Затем есть два файла Java, которые подробно описывают структуру пакета. В src должна находиться папка com/, внутри которой находится папка rossgerbasi/, затем cordova, затем glass и здесь находится GlassCorePlugin.java.

После того, как вы добавили все это, откройте Eclipse (если он еще не открыт) щелкните правой кнопкой мыши по проекту и «Обновить» и перейдите! Вы должны надеяться, что сможете взаимодействовать с плагином.

+0

Я сейчас же попробую. Спасибо @keldar –

+0

Не беспокойтесь - я забыл добавить пункт (6) - убедитесь, что все остальные параметры в plugin.xml затем добавлены в ваш проект. В теге '' вы найдете все здесь. А именно, он изменяет файл config.xml, AndroidManifest.xml и добавляет еще три файла xml. – keldar

+0

Но декодирование должно быть относительно прямым в любом случае;) – keldar

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