【问题标题】:Manually install Device plugin (and others) into cordova 3.0手动将设备插件(和其他)安装到 cordova 3.0
【发布时间】:2013-07-21 23:32:22
【问题描述】:

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

任何人都可以向我提供有关如何将 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,但没有成功。

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

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

提前谢谢你。

【问题讨论】:

    标签: android ios cordova


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。

      其实插件系统并没有太大变化。

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

      • 添加类(iphone 为 .m .h,android 为 .java)
      • 在需要的地方添加 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

      【讨论】:

      • 这适用于有问题的问题,但是如何添加一个在本地机器上的自行开发的插件? cordova plugin add 那它需要什么结构?
      • 感谢您的回答。不幸的是,这不再适用于 cordova 3.0 中的所有插件。例如,尝试使用 cordova Device 插件(它曾经是一个内置 API,但现在是一个插件)。至此,我找到了一个原因:提供的 device.js 文件不再包含以下行:'define("cordova/plugin/android/device", function(require, exports, module) {'。这行现在由 plugman 自动添加!我希望有人可以提供有关 plugman 到底做什么的具体细节!不过 +1。
      • 基本上plugman 做同样的工作。它将文件复制到您的 src 文件夹(.java/.h .m 和 .js 文件)中,并在您的 config.xml 中添加了一项功能。你会发现一个 plugin.xml 文件来完成这个过程(就像一个 ant 文件)。
      【解决方案3】:

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

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

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

      cordova plugin add my/local/folder
      

      【讨论】:

        【解决方案4】:

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

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

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

        谢谢

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多