总览

Apache Cordova 是开源的移动开发框架。允许你使用标准的 web 技术,如 HTML5、 CSS3 和 JavaScript 来构建跨平台的开发,从而避免使用原生的开发语言。应用针对每个平台进行包装内执行,并依靠符合标准的 API 绑定来访问不同设备的传感器,数据和网络状态。

Apache Cordova 在2012年10月成为 Apache Software Foundation (ASF) 的顶级项目,在 Apache License v2.0 协议下继续保持开源和免费。

Apache Cordova 面向的用户主要有:

  • 移动开发者,想要扩展应用程序到多个平台上,而不必用每个平台的语言和工具集重新实现它。
  • Web开发人员,希望部署 Web 应用程序打包分发到各种应用程序商店门户。
  • 移动开发者,对原生应用程序与 可以访问设备级的 API 的 WebView(特殊的浏览器窗口)组件混合开发感兴趣,或者想开发原生与 WebView 组件之间的插件接口。

基本组件

Cordova 应用程序依赖于一个共同的 config.xml 文件,提供有关应用程序的信息,并指定影响它的工作原理,如,是否响应方向的变化参数。该文件遵循 W3C 打包的 Web应用程序,或插件,规范。

该应用程序本身是一个网页,在默认情况下名为 index.html 的本地文件,即无论引用CSS,JavaScript,图片,多媒体文件或其他资源都需要它来运行。该应用程序执行的本地应用程序包装内的 WebView。

Cordova 使得 WebView 可提供其整个用户界面应用程序。在某些平台上,它也可以是混合了原生应用组件和 WebView 的 hybrid 应用。(见 嵌入 WebViews了解详细信息。)

一个插件接口用于 Cordova 和原生组件相互通信。这使您可以让 JavaScript 调用原生代码。理想情况下,JavaScript API 面向了原生代码在多个设备平台是一致的。3.0 版本,提供了插件绑定标准的设备 API。第三方插件提供额外的绑定功能并不一定适用于所有平台的。您可以在插件注册表中找到这些第三方插件,并可以在你的应用程序使用他们。您也可以开发自己的插件,参考插件开发指南中的介绍。插件是必要的,例如,Cordova 和自定义的原生组件之间的通信。

注意: 3.0 版本,当创建一个 Cordova 项目时,并默认不会有任何插件存在,如果想使用插件,需要显示添加相应的插件。

Cordova 并不提供任何 UI 组件或者 MV* 框架。如果需要,需要自己添加第三方包。

开发路径

3.0 版本,主要提供2种开发移动应用的流程,他们各有优势:

  • Cross-platform (CLI) workflow(跨平台(命令行界面)的工作流程):如果你希望你的应用程序,在尽可能多的不同的移动操作系统上运行,很少需要特定平台开发,那么你适合使用此工作流程。该工作流程围绕 cordova 工具为中心,就是 3.0 中引入的 Cordova CLI。CLI 是一个高层次的工具,可以让您一次搭建多种平台项目,抽象出许多低级别的 shell 脚本的功能。该CLI 复制一套通用的网络资源集注入到子目录每个移动平台中,使得任何必要的配置更改,就运行构建脚本生成应用程序二进制文件。 CLI 还提供了通用接口应用到你的应用程序中。有关CLI的更多详细信息,请参阅命令行界面。除非你有使用以平台为中心的工作流程的必要,否则建议使用跨平台的工作流。
  • Platform-centered workflow (平台为中心的工作流程):如果你想专注于建立一个应用程序的单一平台,并需要能够在较低的水平,对其进行修改,请使用此工作流程。您需要使用这种方法,例如,如果你希望你的应用程序混合使用基于 Web 的Cordova 组件定制的本地组件。作为一个经验法则,如果你需要修改 SDK 中的项目,那么请使用此工作流程。该工作流依赖于一组低级别的 shell 脚本针对每个支持的平台,和一个单独的 Plugman 工具。虽然你可以使用这个流程来构建跨平台的应用程序,但是比较困难,因为缺乏一个更高级别的工具,来适应独立的构建周期和不同平台的插件更新。不过,这个工作流程让您可通过每个 SDK 提供的开发方案更多的机会,而且是复杂的混合应用程序所必不可少的。见 平台开发指南 了解更多详情。

当第一次开始,最容易使用的跨平台的工作流程来创建一个应用程序。然后如果你需要更好地控制 SDK ,您可以切换到以平台为中心的工作流程。低级别的 shell 工具在与 CLI 类似的单独的发布包中。对于由 CLI 最初生成的项目,这些 shell 工具也都在项目的 platforms/*/cordova 目录中找到。

注意:一旦你从 CLI 的工作流程来转到特定于平台的 SDK 和 shell 工具为中心,你不能转回去了。该 CLI 维护一套通用的跨平台的源代码,基于它来改写特定平台的源代码。为了保护您对特定平台的资源的任何修改,你需要切换到该平台为中心的 shell 工具,依赖于特定平台的源代码而忽略了跨平台的源代码。

安装 Cordova

不同的流程有不同的安装方式:

安装之后,建议你针对你需要开发的平台,对照 平台开发指南。同时建议你查看隐私指南安全指南,以及后续步骤。对于配置 Cordova,请参阅 config.xml 文件。对于从 JavaScript 一个访问设备上的本地函数,请参考插件API