Да, это ужасно странно, но вы можете это сделать.
шаги, чтобы следовать являются:
- Clone хранилище -
git clone https://github.com/aphex/cordova-glass-core.git
- скопируйте файл JavaScript в папку WWW (обычно содержится в директории под названием 'JS' или что-то, в 'WWW').
- Убедитесь, что ваш файл JavaScript указан в вашем файле HTML, чтобы вызвать собственный код.
- Добавить файлы Java в пакет отображения (в данном случае com.rossgerbasi.cordova.glass)
- 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 (если он еще не открыт) щелкните правой кнопкой мыши по проекту и «Обновить» и перейдите! Вы должны надеяться, что сможете взаимодействовать с плагином.
Я сейчас же попробую. Спасибо @keldar –
Не беспокойтесь - я забыл добавить пункт (6) - убедитесь, что все остальные параметры в plugin.xml затем добавлены в ваш проект. В теге '' вы найдете все здесь. А именно, он изменяет файл config.xml, AndroidManifest.xml и добавляет еще три файла xml. –
keldar
Но декодирование должно быть относительно прямым в любом случае;) – keldar