概述
Apache Cordova 是一个开源的移动开发框架。它允许你使用标准的 Web 技术 - HTML5、CSS3 和 JavaScript 进行跨平台开发。应用程序在面向每个平台的包装器内执行,并依赖于符合标准的 API 绑定来访问每个设备的功能,例如传感器、数据、网络状态等。
如果你是以下人员,请使用 Apache Cordova
-
移动开发人员,并且希望将应用程序扩展到多个平台,而无需使用每个平台的语言和工具集重新实现它。
-
Web 开发人员,并且希望部署打包在各种应用商店门户中分发的 Web 应用程序。
-
移动开发人员,对将原生应用程序组件与可以访问设备级 API 的WebView(特殊的浏览器窗口)混合使用感兴趣,或者如果您想在原生组件和 WebView 组件之间开发插件接口。
架构
Cordova 应用程序有几个组件。下图显示了 Cordova 应用程序架构的高级视图。
WebView
启用 Cordova 的 WebView 可以为应用程序提供其整个用户界面。在某些平台上,它也可以是更大的混合应用程序中的组件,该应用程序将 WebView 与原生应用程序组件混合在一起。(有关详细信息,请参阅嵌入 WebView。)
Web 应用程序
这是你的应用程序代码所在的部分。应用程序本身实现为一个网页,默认情况下是一个名为index.html的本地文件,该文件引用 CSS、JavaScript、图像、媒体文件或其他运行所需的资源。该应用程序在原生应用程序包装器内的WebView中执行,你将其分发到应用商店。
此容器有一个非常重要的文件 - config.xml文件,该文件提供有关应用程序的信息并指定影响其工作方式的参数,例如它是否响应方向变化。
插件
插件是 Cordova 生态系统的组成部分。它们为 Cordova 和原生组件提供相互通信的接口,并提供与标准设备 API 的绑定。这使你能够从 JavaScript 调用原生代码。
Apache Cordova 项目维护一组名为核心插件的插件。这些核心插件使你的应用程序能够访问设备功能,例如电池、相机、联系人等。
除了核心插件之外,还有几个第三方插件,它们提供了对并非在所有平台上都可用的功能的其他绑定。你可以使用插件搜索或npm搜索 Cordova 插件。你还可以开发自己的插件,如插件开发指南中所述。例如,可能需要插件在 Cordova 和自定义原生组件之间进行通信。
注意:当你创建一个 Cordova 项目时,它没有任何插件。这是新的默认行为。你所需的任何插件,即使是核心插件,都必须显式添加。
Cordova 不提供任何 UI 小部件或 MV* 框架。Cordova 仅提供这些小部件或框架可以在其中执行的运行时。如果你希望使用 UI 小部件和/或 MV* 框架,则需要选择这些小部件或框架并将其包含在你的应用程序中。
开发路径
Cordova 为你提供了两种创建移动应用程序的基本工作流程。虽然你通常可以使用任一工作流程来完成相同的任务,但它们各有优势
-
跨平台 (CLI) 工作流程:如果你希望你的应用程序在尽可能多的不同移动操作系统上运行,而几乎不需要特定于平台的开发,请使用此工作流程。此工作流程以
cordova
CLI 为中心。CLI 是一种高级工具,它允许你一次为多个平台构建项目,从而抽象出低级 shell 脚本的大部分功能。CLI 将一组通用的 Web 资产复制到每个移动平台的子目录中,对每个平台进行任何必要的配置更改,运行构建脚本以生成应用程序二进制文件。CLI 还提供了一个通用接口,用于将插件应用到你的应用程序。要开始使用,请按照创建你的第一个应用程序指南中的步骤操作。除非你需要以平台为中心的工作流程,否则建议使用跨平台工作流程。 -
以平台为中心的工作流程:如果你想专注于为单个平台构建应用程序,并且需要能够在较低级别对其进行修改,请使用此工作流程。例如,如果你希望你的应用程序将自定义原生组件与基于 Web 的 Cordova 组件混合使用,则需要使用此方法,如嵌入 WebView中所述。根据经验,如果需要在 SDK 中修改项目,请使用此工作流程。此工作流程依赖于一组为每个支持的平台量身定制的较低级别的 shell 脚本,以及一个单独的 Plugman 实用程序,该实用程序允许你应用插件。虽然你可以使用此工作流程构建跨平台应用程序,但通常会更加困难,因为缺少更高级别的工具意味着每个平台都需要单独的构建周期和插件修改。
刚开始时,使用跨平台工作流程创建应用程序可能最容易,如创建你的第一个应用程序指南中所述。然后,如果需要 SDK 提供的更大控制权,你可以选择切换到以平台为中心的工作流程。
注意:一旦你从基于 CLI 的工作流程切换到以特定于平台的 SDK 和 shell 工具为中心的工作流程,你就无法返回。CLI 维护一组通用的跨平台源代码,它在每次构建时都使用该源代码覆盖特定于平台的源代码。要保留对特定于平台的资产所做的任何修改,你需要切换到以平台为中心的 shell 工具,这些工具会忽略跨平台源代码,而是依赖于特定于平台的源代码。
安装 Cordova
Cordova 的安装将因你选择的上述工作流程而异
-
跨平台工作流程:请参阅创建你的第一个应用程序指南。
-
以平台为中心的工作流程。