如何在IDE支持下设置Cordova插件项目?

Car*_*Lee 37 java android cordova android-studio cordova-plugins

我一直在努力设置我的cordova插件项目.主要是由于以下事实:

  • 插件需要位于远离主项目的单独文件夹中

  • 例如,当我使用cordova build android构建项目时,cordova从我的插件文件夹中复制java文件并将其放入platforms/android/src文件夹中.

  • 因此,我不应该手动修改Android项目中的插件的.java文件,我必须在我的插件文件夹中编写我的代码.

  • 但我无法将插件文件夹导入IDE项目,因此我没有代码完成.

  • 没有IDE支持,编写Java/Objective-C基本上是不可能的

如何为我的插件开发设置代码完成的IDE(例如Android Studio)项目?

Nik*_*iko 37

开发Cordova插件有点痛苦.

这是一种方法:

  1. 在插件的单独文件夹中创建插件的基本文件(Android插件的plugin.xml文件,.java文件.h.miOS文件)
  2. 提供plugin.xml安装插件所需的内容
  3. 在Cordova应用中安装插件: cordova plugin add /path/to/pugin
  4. 构建您想要开发插件的平台.cordova build android要么cordova build ios

然后,对于每个平台,您将必须直接在构建项目中的插件上工作:

  • Android:使用Android Studio打开构建的Android项目,yourCordovaAppFolder/platforms/android其中包含"导入项目(Eclipse ADT,Gradle等)"

    1. 打开Project 工具窗口:查看>工具窗口>项目,或+1
    2. 打开位于以下位置的插件类文件:android> java> com.your.plugin> YourPlugin
  • iOS:使用Xcode打开位于yourCordovaAppFolder/platforms/ios In Xcode中的构建iOS项目,您的插件类文件位于该Plugins文件夹中

然后你可以直接为每个平台开发和测试你的插件而无需一次又一次地重新安装它......只需从Android Studio/Xcode运行项目,不要重新安装你的插件,它会抹掉你拥有的东西在项目中完成.

当您认为您的开发已经完成时(或者您希望)时,请将您在开发项目中的插件文件替换为第一步创建的原始插件文件夹中的插件文件.

编辑:

我发现Eclipse去年夏天更新了Eclipse Mars(4.5),其中包括Thym(HYbrid Mobile Tools).

如果需要,他们有一个Github项目页面.

我已经快速测试了它,它允许创建Cordova项目,轻松添加插件,并直接在所需的平台(Android,iOS)上运行.

微软还为Apache Cordova制作了免费版Visual Studio,但我还没有测试过.

关于带有Thym的Eclipse,我的第一个快速结论是开发Cordova应用程序是切实可行的,但不会是开发Cordova插件的最终解决方案,因为它不是这样定向的,不是为插件制作而是制作应用程序(它是可能与Visual Studio for Apache Cordova相同).

顺便说一句,我在使用Eclipse + Thym启动iOS模拟器时遇到了一些麻烦,所以即使看起来已经很好,它仍然需要改进.


ant*_*nty 14

我倾向于使用的解决方案遵循Niko在接受的答案中概述的解决方案.但是,我在添加插件时添加了--link标志:

cordova plugin add --link ../cordova-plugin-example
Run Code Online (Sandbox Code Playgroud)

哪个(至少在Mac上,可能是Linux)创建了插件目录的符号链接,而不是复制它.然后,使用Android Studio在'platforms/android'中编辑Android项目中的插件文件实际上会修改插件目录中的文件.这允许将插件目录保持独立(并且在它自己的版本控制下).删除和添加插件应该 - 至少在理论上 - 不会丢失对插件的更改.

该方法应该适用于iOS插件.

请注意,我不知道是否或如何--link在Windows机器上工作.

提示:我在帮助中找到了这个选项:

cordova help plugin
Run Code Online (Sandbox Code Playgroud)

这使:

     [...]
     [--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.
Run Code Online (Sandbox Code Playgroud)