5

Phonegap/Cordova 3.0 从 3.0 版开始进入模块化设计。例如,要调用device.versionAPI,您需要将 Device 插件包含到您的项目中。

任何人都可以向我提供有关如何将 Device(或任何其他)cordova API 插件安装到新的 iOS 项目(使用 XCode)和 Android(使用 Eclipse)中的明确说明?

我只能找到使用 Node.js 和/或 PlugMan 的详细信息。需要一个自动化脚本来完成添加插件的基本工作对我来说是不可取的,因为我不喜欢进程做我不理解的事情(在幕后)。

在过去(cordova 2.9),我做了以下工作以在(比如 Android)中添加一个完美运行的第三方插件:

  1. 将插件 .java 代码放入 /src 文件夹
  2. 将插件 .js 代码放在我的 www 文件夹中
  3. 将 .js 文件导入 index.html
  4. 在 config.xml 中添加feature标签
  5. 在 Javascript 中调用插件

我以前从未在 iOS 中添加过插件。

但是,我认为上述过程对于基于 cordova 的插件应该可以正常工作,但事实并非如此。到目前为止,我没有尝试过 Android,但我尝试了 iOS,但没有成功。

我包含在CDVDevice.h/ CDVDevice.mplugins 文件夹中。我还将device.js导入index.html,并修改了config.xml!我只有在完成 iOS 之后才会尝试 Android。

请,如果您知道如何手动执行此操作,请告诉我。

先感谢您。

4

4 回答 4

14

您可以这样做,将插件本地下载到您的机器然后运行此代码

cordova plugin add <id located in plugin.xml> --searchpath <local path to plugin>

这会将插件安装到您的项目中

于 2015-02-12T18:55:39.087 回答
10

我遇到了同样的问题。

事实上,插件系统并没有太大变化。

我刚刚添加了适用于 Android 的日期选择器插件:

  • 添加类(.m .h 用于 iphone,.java 用于 android)
  • 在需要的地方添加js文件
  • 在 index.html 中添加指向 js 文件的链接
  • 编辑 config.xml(路径取决于您使用的操作系统):

而不是在插件标签之间添加插件:

<plugin name="DatePickerPlugin" value="com.phonegap.plugins.DatePickerPlugin"/>

您将添加一个功能(多么革命!),如下所示:

<feature name="DatePickerPlugin" >
    <param name="android-package" value="com.phonegap.plugins.DatePickerPlugin"/>
</feature>

就是这样!

如果您不确定参数名称的操作系统语法,您可以使用以下命令添加默认的 cordova 插件:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

更多信息: http ://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

于 2013-08-22T08:53:11.673 回答
7

当我尝试使用以下命令添加插件时出现错误:

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

虽然, git clone 正在工作,所以我将插件下载到本地文件夹并使用添加它

cordova plugin add my/local/folder
于 2014-08-14T18:21:20.863 回答
0

对于 Android,我们只需要创建插件(Java 类扩展 CordovaPlugin),然后将项目添加到 config.xml (res/xml/..) 中就完成了。

 <feature name="Calendar">
        <param name="android-package" value="com.package.Calendar" />
    </feature>

假设 Calendar 作为您的插件名称另外确保添加链接到 js 文件

谢谢

于 2014-09-29T10:39:55.943 回答