前面提到了PhoneGap,这一章我们开始接触Cordova。简单的说,Cordova就是Apache基金会给PhoneGap取的一个新名字。历史缘由就是Adobe将PhoneGap核心代码贡献给了Apache基金会,现在Apache将Cordova作为一个顶级项目来运行。
注意:本章及后续章节内容将参照Cordova官方文档进行翻译,但并非严格意义上的逐字翻译,可能差别很大。作风严谨的朋友可以直接参考官方文档的中文版(繁体)。
基本组件
Cordova依赖于一个config.xml文件,以指定其运行所需的各种参数,比如是否相应方向切换等等。
应用程序本身是以一个网页的方式来实现的,默认名为index.html。当中可以使用CSS,JavaScript,图像以及多媒体文件等等。应用程序是作为一个WebView(原文WebView,可简单理解为Web页)运行在本地设备的一个Wrapper(原文为Wrapper,不知如何翻译比较准确,可以理解为一个隔离的封闭盒子之类的,类似沙箱吧)中。为了让Cordova应用程序能够和不同平台的本地设备交互工作,你需要一个cordova.js文件,该文件提供了很多API接口。
Cordova的WebView提供了整个的用户交互接口(UI)。它也可以作为一个混合式应用程序的一个组件(这里所谓的混合式是指混合了Cordova WebView和本地原生App的一种混合开发模式)。Cordova提供和一些插件来支持这些组件中的交互工作。
开发模式
从Cordova3.0开始,你可以使用两种方式来开发应用。
Web开发模式
如果你希望开发的应用程序能够以极小的改动就能运行在不同的平台设备上,比如IOS,Android等,那么Web开发模式将会是你的首选。Cordova的命令行工具(CLI,即Cordova Command-line Interface)为这种开发模式提供了强力支持。CLI抽象(简化)了很多针对平台的底层操作功能,最终以Shell脚本的方式提供了用户使用。注意:一般情况下如果有人提到CLI,也许他指的就是这种Web开发模式。
本地平台开发模式
本地平台开发模式可以简单理解为类似传统的移动App开发模式。如果你只希望你的应用在某一种特定平台上运行,比如IOS,而且你对操作底层设备非常感兴趣的话,那么这种方式将是你的首选。当然以这种开发模式工作,你也可以开发出跨平台的应用程序,只不过你需要做更多的额外工作。这种模式的好处当然也很明显,你可以访问针对不同平台的非常底层的shell脚本。同时,如果你的WebView只作为应用程序的非常小的一部分呈现,那么这种方式仍然也是一个非常不错的选择。
一般情况下,你也许会首选Web开发模式。借助CLI,你可以:
1) 创建一个新的项目(提供了一些默认的配置信息,方便以后修改)
2) 设置一些额外的文件,以针对不同的平台进行匹配。当然,你必须实现安装各个平台的SDK。
3) 针对不同的平台进行编译,并利用基于SDK的仿真器进行测试。你也可以直接将这些编译后的程序安装到真实的设备上。
开发过程中,你可以随时切换到本地平台开发模式。特定平台的SDK提供了很多可用的选项帮助你完成开发。具体请参考SDK文档。
Cordova支持的平台列表
注:图中链接部分不可用,请直接访问原始网址
http://cordova.apache.org/docs/en/3.4.0/guide_support_index.md.html#Platform%20Support