如何设置支持 IDE 的 Cordova 插件项目?
How to set up Cordova plugin project with IDE support?
我一直在努力设置我的 cordova 插件项目。主要原因是:
插件需要位于远离主项目的单独文件夹中
例如,当我使用cordova build android
构建项目时,cordova从我的插件文件夹中复制java文件并将其放入platforms/android/src
文件夹中.
因此我不应该手动修改 Android 项目中我的插件的 .java 文件,我必须在我的插件文件夹中编写我的代码。
但是我无法将插件文件夹导入到IDE项目中,因此我没有代码完成。
没有IDE支持
写Java/Objective-C基本不行
如何为我的插件开发设置带有代码完成功能的 IDE(例如,对于 Android Studio)项目?
Android Studio 和 Cordova 插件有更简单的解决方案:添加 android 平台后,cordova 在 platforms/android 下创建一个 android 项目 并且你可以在 android 项目下创建 cordova 插件文件夹,并使用命令将插件添加到项目一次。因此,您不需要为 Java 使用另一个。正如我所说,将有两个相同的 java 文件:/src 和 /PluginDevelopmentFolder。 cordova build android
不操作任何 java 文件。我添加了 fileTree 以确认:
开发Cordova 插件有点痛苦。
这是一种方法:
- 创建插件的基本文件(
plugin.xml
文件,Android 插件的 .java
文件,[=105] 的 .h
和 .m
文件=]) 在你的插件的单独文件夹中
- 在您的
plugin.xml
中提供安装插件所需的内容
- 在您的 Cordova 应用程序中安装您的插件:
cordova plugin add /path/to/pugin
- 构建您想要开发插件的平台。
cordova build android
或 cordova build ios
然后对于每个平台,您必须直接在构建项目中的插件上工作:
Android : 使用 Android Studio 打开构建的 Android 项目位于 yourCordovaAppFolder/platforms/android
"Import project (Eclipse ADT, Gradle, etc.)"
- 打开
Project
工具 window : View > Tool Windows > Project ,或 ⌘ + 1
- 打开位于 android > java > com.your.plugin > YourPlugin[=74= 的插件 class 文件]
iOS : 使用 Xcode 打开位于 yourCordovaAppFolder/platforms/ios
中的已构建 iOS 项目
在 Xcode 中,您的插件 class 文件位于 Plugins
文件夹中
然后您可以直接为每个平台开发和测试您的插件,而无需一次又一次地重新安装...只需 运行 来自 Android Studio/Xcode 的项目,并且不要重新安装您的插件,它会清除您在项目中所做的一切。
当您认为您的开发已经完成(或当您想要)时,将第一步创建的原始插件文件夹中的插件文件替换为您正在开发的项目中的插件文件。
编辑:
我发现 Eclipse 去年夏天进行了更新,Eclipse Mars (4.5) that includes Thym(The HYbrid Mobile Tools)。
如果需要,他们有一个 Github project page。
我很快测试了它,它允许创建 Cordova 项目,轻松添加插件,并且 运行 直接在所需平台上(Android、iOS)。
微软也做了免费版Visual Studio for Apache Cordova,不过我没测试过
关于 Eclipse with Thym,我的第一个快速结论是开发 Cordova 应用程序是实用的,但不会是开发 Cordova 插件的最终解决方案,因为它没有面向这种方式不是为插件制作的,而是为应用程序制作的(对于 Apache Cordova 的 Visual Studio 可能是相同的)。
顺便说一下,我在使用 Eclipse+Thym 启动 iOS 模拟器时遇到了一些问题,所以即使它看起来已经不错,它可能仍然需要改进。
阅读这个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)。我没有将插件移动到其他目录,因为我不需要它,但是您可以设置目录并手动放置插件,然后使用脚本包含插件。
我倾向于使用的解决方案遵循 Niko 在接受的答案中概述的解决方案。但是,我在添加插件时添加了 --link 标志:
cordova plugin add --link ../cordova-plugin-example
which(至少在 Mac 和可能 Linux 上)创建符号 links 到插件目录而不是复制它。然后,使用 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 步可以自动化,我个人从来没有绕过这个。
我一直在努力设置我的 cordova 插件项目。主要原因是:
插件需要位于远离主项目的单独文件夹中
例如,当我使用
cordova build android
构建项目时,cordova从我的插件文件夹中复制java文件并将其放入platforms/android/src
文件夹中.因此我不应该手动修改 Android 项目中我的插件的 .java 文件,我必须在我的插件文件夹中编写我的代码。
但是我无法将插件文件夹导入到IDE项目中,因此我没有代码完成。
没有IDE支持
写Java/Objective-C基本不行
如何为我的插件开发设置带有代码完成功能的 IDE(例如,对于 Android Studio)项目?
Android Studio 和 Cordova 插件有更简单的解决方案:添加 android 平台后,cordova 在 platforms/android 下创建一个 android 项目 并且你可以在 android 项目下创建 cordova 插件文件夹,并使用命令将插件添加到项目一次。因此,您不需要为 Java 使用另一个。正如我所说,将有两个相同的 java 文件:/src 和 /PluginDevelopmentFolder。 cordova build android
不操作任何 java 文件。我添加了 fileTree 以确认:
开发Cordova 插件有点痛苦。
这是一种方法:
- 创建插件的基本文件(
plugin.xml
文件,Android 插件的.java
文件,[=105] 的.h
和.m
文件=]) 在你的插件的单独文件夹中 - 在您的
plugin.xml
中提供安装插件所需的内容 - 在您的 Cordova 应用程序中安装您的插件:
cordova plugin add /path/to/pugin
- 构建您想要开发插件的平台。
cordova build android
或cordova build ios
然后对于每个平台,您必须直接在构建项目中的插件上工作:
Android : 使用 Android Studio 打开构建的 Android 项目位于
yourCordovaAppFolder/platforms/android
"Import project (Eclipse ADT, Gradle, etc.)"- 打开
Project
工具 window : View > Tool Windows > Project ,或 ⌘ + 1 - 打开位于 android > java > com.your.plugin > YourPlugin[=74= 的插件 class 文件]
- 打开
iOS : 使用 Xcode 打开位于
yourCordovaAppFolder/platforms/ios
中的已构建 iOS 项目 在 Xcode 中,您的插件 class 文件位于Plugins
文件夹中
然后您可以直接为每个平台开发和测试您的插件,而无需一次又一次地重新安装...只需 运行 来自 Android Studio/Xcode 的项目,并且不要重新安装您的插件,它会清除您在项目中所做的一切。
当您认为您的开发已经完成(或当您想要)时,将第一步创建的原始插件文件夹中的插件文件替换为您正在开发的项目中的插件文件。
编辑:
我发现 Eclipse 去年夏天进行了更新,Eclipse Mars (4.5) that includes Thym(The HYbrid Mobile Tools)。
如果需要,他们有一个 Github project page。
我很快测试了它,它允许创建 Cordova 项目,轻松添加插件,并且 运行 直接在所需平台上(Android、iOS)。
微软也做了免费版Visual Studio for Apache Cordova,不过我没测试过
关于 Eclipse with Thym,我的第一个快速结论是开发 Cordova 应用程序是实用的,但不会是开发 Cordova 插件的最终解决方案,因为它没有面向这种方式不是为插件制作的,而是为应用程序制作的(对于 Apache Cordova 的 Visual Studio 可能是相同的)。
顺便说一下,我在使用 Eclipse+Thym 启动 iOS 模拟器时遇到了一些问题,所以即使它看起来已经不错,它可能仍然需要改进。
阅读这个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)。我没有将插件移动到其他目录,因为我不需要它,但是您可以设置目录并手动放置插件,然后使用脚本包含插件。
我倾向于使用的解决方案遵循 Niko 在接受的答案中概述的解决方案。但是,我在添加插件时添加了 --link 标志:
cordova plugin add --link ../cordova-plugin-example
which(至少在 Mac 和可能 Linux 上)创建符号 links 到插件目录而不是复制它。然后,使用 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 步可以自动化,我个人从来没有绕过这个。