我一直在努力设置我的cordova插件项目。主要是由于以下事实:
cordova build android
构建项目时,cordova从我的插件文件夹中复制java文件并将其放入platforms/android/src
文件夹中。如何为我的插件开发设置代码完成的IDE(例如Android Studio)项目?
开发Cordova插件有点痛苦。
这是一种方法:
plugin.xml
文件,适用于Android插件的.java
文件,适用于iOS的.h
和.m
文件)plugin.xml
中提供安装插件所需的内容cordova plugin add /path/to/pugin
cordova build android
或cordova build ios
然后,对于每个平台,您将必须直接在构建项目中的插件上工作:
yourCordovaAppFolder/platforms/android
的构建Android项目,其中包含“导入项目(Eclipse ADT,Gradle等)”
打开Project
工具窗口:查看>工具窗口>项目,或⌘+ 1
打开位于以下位置的插件类文件:android> java> com.your.plugin> YourPluginyourCordovaAppFolder/platforms/ios
的构建iOS项目在Xcode中,您的插件类文件位于Plugins
文件夹中然后你可以直接为每个平台开发和测试你的插件,而无需一次又一次地重新安装它......只需从Android Studio / Xcode运行项目,不要重新安装你的插件,它会抹掉你拥有的东西在项目中完成。
当您认为您的开发已经完成时(或者您希望)时,请将您在开发项目中的插件文件替换为第一步创建的原始插件文件夹中的插件文件。
编辑:
我发现Eclipse去年夏天发布了更新,Eclipse Mars (4.5)包括Thym(HYbrid Mobile Tools)。
如果需要,他们有一个Github project page。
我已经快速测试了它,它允许创建Cordova项目,轻松添加插件,并直接在所需的平台(Android,iOS)上运行。
微软还制作了Visual Studio for Apache Cordova的免费版本,但我还没有测试过。
关于带有Thym的Eclipse,我的第一个快速结论是开发Cordova应用程序是实用的,但不会是开发Cordova插件的最终解决方案,因为它不是这种方式而是针对插件而是制作应用程序(并且它是可能与Visual Studio for Apache Cordova相同)。
顺便说一句,我在使用Eclipse + Thym启动iOS模拟器时遇到了一些麻烦,所以即使看起来已经很好,它仍然需要改进。
我倾向于使用的解决方案遵循Niko在接受的答案中概述的解决方案。但是,我在添加插件时添加了--link标志:
cordova plugin add --link ../cordova-plugin-example
哪个(至少在Mac上,可能是Linux)创建了插件目录的符号链接,而不是复制它。然后,使用Android Studio在'platforms / android'中编辑Android项目中的插件文件实际上会修改插件目录中的文件。这允许将插件目录保持独立(并且在它自己的版本控制下)。删除和添加插件应该 - 至少在理论上 - 不会丢失对插件的更改。
该方法应该适用于iOS插件。
请注意,我不知道是否或如何--link在Windows机器上工作。
提示:我在帮助中找到了这个选项:
cordova help plugin
这使:
[...] [--link] ... when installing from a local path, creates a symbolic link to the plugin instead of copying files. The extent to which files are linked vs copied varies by platform. Useful for plugin development.
我想建议另一个开发Cordova插件的工作流程。它的方法类似于前面已经提到的工作流程,区别在于我喜欢有一个独立的项目来维护+测试+调试插件代码,而不需要单独的测试应用程序。
工作流程的大纲如下所示。
Step 1 - Prepare the Cordova platform.
1.1 Download android release cordova-android-x.y.z.zip of the version you want from the github source site:
https://github.com/apache/cordova-android
1.2. Expand the archive, go to framework/ directory
1.3. create a local.properties file with contents: 'sdk.dir=/opt/android-sdk'
Adjust the path so that it points to the location of the Android SDK on your machine.
1.4. Execute: 'ant jar'
The result is a cordova-x.y.z.jar
Step 2 - Create/test the plugin with IDE support.
2.1. Create an empty Android project using Android Studio.
2.2. Copy the cordova-x.x.x.jar to the app/libs directory of your project.
2.3. Create the plugin code + unit tests (you have code completion and can build the code using the unit tests).
2.4. OPTIONAL If necessary you can add a webview and test the code inside the webview as described here
https://cordova.apache.org/docs/en/latest/guide/platforms/android/webview.html
Step 3 - Package plugin files.
3.1. Create a plugin project with plugman.
3.2. Copy the files from the development project into the plugin project
3.3. Deploy and reuse.
最后一步3可以自动化,我个人从来没有这样做过。
读这个https://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html
我在Debian Jessie上使用NetBeans IDE。 (NetBeans对我来说是最好的IDE,用于QT,PHP和现在的Cordova。但它使用了大量的RAM。)
在我按下构建按钮后,我的shell脚本删除,安装并运行VirtualBox中新构建的应用程序(使用adb)。我不会将插件移动到其他目录,因为我不需要它,但您可以设置目录并手动插入插件,然后使用脚本包含插件。