Architectural overview of Cordova platform
Apache Cordova是一个开源的移动开发框架。允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个设备的功能,比如说:传感器、数据、网络状态等。
使用Apache Cordova的人群:
移动应用开发者,想扩展一个应用的使用平台,而不通过每个平台的语言和工具集重新实现。
web开发者,想包装部署自己的web App将其分发到各个应用商店门户。
移动应用开发者,有兴趣混合原生应用组建和一个WebView(一个特别的浏览器窗口) 可以接触设备A级PI,或者你想开发一个原生和WebView组件之间的插件接口。
这是cordova应用程序的几个组成部分。下面这幅图是cordova应用架构的高级视图。
WebView
Cordova启用的WebView可以给应用提供完整用户访问界面。在一些平台中,他也可以作为一个组件给大的、混合应用,这些应用混合和Webview和原生的应用组件。(查看Embedding WebViews获得详细内容。)
Web App
这是你应用程序代码存在的地方。应用的实现是通过web页面,默认的本地文件名称是是index.html,这个本地文件应用CSS,JavaScript,图片,媒体文件和其他运行需要的资源。应用执行在原生应用包装的WebView中,这个原生应用是你分发到app stores中的。
这个容器中包含一个非常重要文件- config.xml 文件他提供App的重要的信息和特定的参数用来影响App的工作,比如说是否响应方向的变动。
插件
插件是Cordova生态系统的重要组成部分。他提供了Cordova和原生组件相互通信的接口并绑定到了标准的设备API上。这使你能够通过JavaScript调用原生代码.
Apache Cordova项目维护着一组插件叫做核心插件。这些核心插件可以让你的应用程序访问设备功能,比如:电源,相机,联系人等。
除了核心插件,这里还有一些第三方插件他们提供了一些附加功能,但这些功能不一定在每个平台都能用。你可以搜索Cordova插件使用插件搜索或者npm。你也可以开发自己的插件,像 插件开发指南描述的那样。插件是必要的,例如Cordova和自定义原生组件之间通信。
注意:当你创建一个Cordova项目它不存在任何插件。这是新的默认行为。任何你需要的组件,哪怕是核心组件,你也必须明确添加。
Cordova不提供任何UI部件和MV框架。Cordova只提供运行环境。如果你想使用UI部件或者MV框架,你需要选择他们并包含在你的应用程序中。
开发工作流
Cordova提供两个基本的工作流用来创建移动App。虽然你经常使用两种不同工作流完成同样的任务,但是他们之间是有各自优势的:
跨平台(CLI)的工作流:如果你想你的App运行在尽可能多的移动操作系统,那么就使用这个工作流,你只需要很少的特定平台开发。 这个工作流围绕这'cordova'CLI(命令行)。CLI是一个高级别的工具,他允许一次构建多个平台的项目,抽象了很多功能性的低级别shell脚本。CLI把公用的web资源复制到每个移动平台的子目录,根据每个平台做必要的配置变化,运行构建脚本生成2进制文件。CLI统一也提供通用接口,将插件应用在app中。如果要入门可以按照 创建你的第一个App指南中的步骤来 。除非你有一个以平台为中心的工作流,否则建议你使用跨平台工作流。
平台为中心的工作流:如果你专注于构建单独平台的App或者需要需要在底层修改它那么就使用这个工作流吧。你需要使用这种方法,如果你需要你的App混合原生组件和基于Web的Cordova组件, 正如 嵌入WebView讨论的。作为一个经验法则,如果你需要修改SDK中的项目那么使用这个工作流。 这个工作流依靠一组低级别的shell脚本,他们是给每个支持平台量身定做的,还有一个单独的Plugman工具允许你添加插件。 虽然你可以使用这个工作流构建跨平台应用,但通常这是非常困难的,因为缺乏高基本的工具,意思就是是单独的构建生命周期并且插件修改需要对每一个平台进行。
当你第一次开始,跨平台工作流创建App可能是最容易的,像创建你的第一个App中描述的那样。然后,你可以切换到以平台为中心的工作流,如果你需要更好的控制SDK提供的功能。
注意: 一但你从以CLI为中心的工作流切换到一个围绕特定平台SDK和shell工具的工作流中,你就不可能返回了。 CLI维护着一套通用的跨平台源代码,每个特定平台构建都需要使用他而不是特定平台的源码。为了保护你对特定平台资产的修改,你需要切换到以平台为中心的脚本工具,他忽略跨平台的源码,转而依靠特定平台的源码。
安装Cordova
安装Cordova会因你依靠的工作流不同而不同:
跨平台工作流: 查看 创建你的第一个App 指南.
以平台为中的工作流
在安装完Cordova之后,建议你查看平台开发
部分来进行移动平台开发。 同时建议你查看隐私指南 和 安全指南.