phonegap 与 cordova

在介绍phonegap目录之前,针对很多开发者对phonegap 和 cordova 的关系一直存在疑问,其实在phonegap 的官网上早有此介绍

链接http://phonegap.com/blog/2012/03/19/phonegap-cordova-and-what-e2-80-99s-in-a-name/

这篇文章的大致内容我总结四点:

  1. Cordova 与 phonegap 的关系 就向webkit 与 Safari 和 Chrome 关系

  2. 在将来phonegap 将可能包含其他的工具

  3. phonegap 将永远保持开源免费

  4. 在目前只是安装包的名字不同,并且会保持一段时间


phonegap 命令内部执行

如果公司内部一直使用phonegap 安装包,你可以将下面命令cordova 替换为phonegap

  • 下面创建一个cordova 项目 cordova create hello com.example.hello HelloWorld,成功后我们可以打开 HelloWorld 文件夹,可以看到四个目录和config.xml (具体目录含义从目录名字可以看出)

  • 然后我们添加需要的平台一般是 ios 和 android 俩种 cordova platform add ios –save && cordova platform add android –save (注意这一步要在你添加插件之前,具体原因下面将详细叙述)

  • 然后我们为(我们刚刚加入的运行平台)加入一个示例插件 cordova plugin add cordova-plugin-camera (cordova 在执行plugin 插件加入的过程中,执行插件内部的plugin.xml 文件,plugin.xml 中 platform 内部命令将会执行,例如 图片所示的插件,如果已经有ios 平台,在执行加入插件的命令的过程中feature 属性将会被拷贝到ios 的target 所对应的”config.xml” 中,资源文件将会被拷贝到项目对应的plugin 文件夹内)

    My screenshot

  • 然后我们执行 cordova build <platform> 作用,是将 HelloWorld 目录下的www 包与插件内部的 js 融合,加入 cordova.js cordova_plugins.js , 在 platform 下生成新的 www 包


插件错误处理 :插件找不到了 (以ios 为例 其他平台原理类似)

web 端

  1. 查看 www 中对应的调用方法是否被调用
  2. 查看 cordova_plugins.js 插件是否被注册
  3. 如果为插件提供了对应的插件js 文件方便其调用 ,请查看这个插件的js 文件的对应方法是否存在&&被调用 (是否存在 插件js 你可以查看插件的 plugin.xml , 是否存在 js-module)

平台原生端

  1. 查看 原生代码 config.xml 中是否注册插件
  2. 查看 插件源码是否被存在,是否参与编译,方法是否被调用

这篇文章主要是想帮助理解一些phonegap 命令,如对具体参数具体含义有所疑问,请参考文档 http://cordova.apache.org/docs/en/latest/guide/cli/index.html

也欢迎email zhaojing19890531@163.com 联系我