- ・2009年 通过iPhoneDevCamp之后,加拿大Nitobi开发了PhoneGap
- ・2011年 7月28日PhoneGap 1.0.0发布
- ・2011年 10月Adobe收购了Nitobi,并把PhoneGap的核心代码codebase捐给了Apache基金会,但保留了PhoneGap的商标所有权
- ・2011年 Apache最开始孵化这项目时用的名是Apache Callback(PhoneGap 1.1.0)
- ・2012年 PhoneGap更新到1.4版本后,用Nitobi旧址的街道名Cordova重新命名了这个项目,更广的用户和贡献者、管理透明、更好的文档;但是也产生了品牌歧义(Phonegap、Cordova)
所以,可以把PhoneGap理解为Cordova的一个distribution,但它或多或少的和Cordova有所不同,当然很多不同也是因为要支持PhoneGap Build的。PhoneGap和Cordova的关系就如同Safari和WebKit的关系。
PhoneGap is a distribution of Apache Cordova.
前提版本:
引用
#cordova -v
3.4.1-0.1.0
#phonegap -v
3.4.0-0.19.21
3.4.1-0.1.0
#phonegap -v
3.4.0-0.19.21
(1)CLI
从以下的依赖关系可以看出PhoneGap实际上内部就是使用了Cordova。
引用
[email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected].
2, [email protected])
├── [email protected] ([email protected], [email protected], [email protected].
9, [email protected])
├── [email protected] ([email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected], [email protected], [email protected], ar
[email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected].
2, [email protected])
├── [email protected] ([email protected], [email protected], [email protected].
9, [email protected])
├── [email protected] ([email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected], [email protected]
, [email protected], [email protected], [email protected], [email protected], [email protected], ar
[email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
查看命令的说明:
引用
#phonegap help
#cordova help
#cordova help
官方说明:
https://github.com/apache/cordova-cli
https://github.com/phonegap/phonegap-cli
最常用的命令都是相似的,Adobe给PhoneGap添加了一些Cordova没有的特性,比如remote build。
1)create命令
引用
E:\projects>cordova create c1
Creating a new cordova project with name "HelloCordova" and id "io.cordova.hellocordova" at location "E:\projects\c1"
Creating a new cordova project with name "HelloCordova" and id "io.cordova.hellocordova" at location "E:\projects\c1"
引用
E:\projects>phonegap create p1
[phonegap] the options E:\projects\p1 com.phonegap.helloworld HelloWorld
[phonegap] created project at E:\projects\p1
[phonegap] the options E:\projects\p1 com.phonegap.helloworld HelloWorld
[phonegap] created project at E:\projects\p1
phonegap cli命令中不能指定name和id,需要手动修改config.xml
参考: https://github.com/phonegap/phonegap-cli/issues/263
2)build命令
phonegap build 统一了Cordova的以下命令:
- cordova platform add
- cordova prepare
- cordova compile
3)serve命令
- phonegap serve不需要添加平台直接使用,默认端口3000
- cordova serve需要添加平台后使用,默认端口8000
4)local/remote命令
“phonegap local *”
- build
build a specific platform - install
install a specific platform - run
build and install a specific platform - plugin
add, remove, and list plugins
“phonegap remote *”
- login login to PhoneGap/Build
- logout logout of PhoneGap/Build
- build
build a specific platform - install
install a specific platform - run
build and install a specific platform
cordova emulate 等价于 phonegap local run。
cordova cli更像是Phonegap的local build。
https://github.com/phonegap/phonegap-cli/blob/master/lib/phonegap/util/platform.js
'local' => cordova-cli
'remote' => PhoneGap/Build
phonegap的project命令都会判断是否该工程下有.cordova文件夹。
Cordova判断的是www platforms config.xml
(2)Project
1)www/spec
jasmine的测试代码
2)www/res
phonegap build支持icon和splash
3)config.xml
文件位置
phonegap: /www/config.xml
cordova: /config.xml
***cordova也支持读取www下的config.xml
文件内容:
4)index.html
cordova.js 和 phonegap.js的内容完全是一样的,而且phonegap的native工程里也有cordova.js。
(3)Plugin
phonegap plugin add 是用于phonegap local build的,phonegap remote build的plugin需要在config.xml中添加,互不相干。
(4)其他
- Phonegap独有功能:Phonegap Build、Phonegap Enterprise、Phonegap Developer App等。
- Phonegap使用Cordova,但是各自管理版本,一般Cordova先发布,Phonegap会随后才支持新版。
- Phonegap Build里只能使用Phonegap的插件,而Cordova可以导入任意插件。
参考:
http://blog.tiger-workshop.com/difference-between-phonegap-and-cordova/