概述
Apache Cordova 是一个开源的移动开发框架。它允许您使用标准的 Web 技术 - HTML5、CSS3 和 JavaScript 进行跨平台开发。应用程序在针对每个平台的包装器中执行,并依赖于符合标准的 API 绑定来访问每个设备的功能,例如传感器、数据、网络状态等。
如果您是以下人员,请使用 Apache Cordova
-
移动开发者,希望将应用程序扩展到多个平台,而无需使用每个平台的语言和工具集重新实现它。
-
Web 开发者,希望部署一个打包用于在各种应用商店门户网站中分发的 Web 应用程序。
-
对将原生应用程序组件与WebView(特殊浏览器窗口)混合感兴趣的移动开发者,该窗口可以访问设备级 API,或者您希望开发原生组件和 WebView 组件之间的插件接口。
架构
Cordova 应用程序包含多个组件。下图显示了 Cordova 应用程序架构的高级视图。
WebView
支持 Cordova 的 WebView 可以为应用程序提供其整个用户界面。在某些平台上,它也可以是更大混合应用程序中的一个组件,该应用程序将 WebView 与原生应用程序组件混合在一起。(有关详细信息,请参阅嵌入 WebViews。)
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 组件混合在一起,如嵌入 WebViews中所述,则需要使用此方法。作为经验法则,如果您需要在 SDK 中修改项目,请使用此工作流程。此工作流程依赖于一组针对每个支持平台量身定制的低级 shell 脚本,以及一个单独的 Plugman 实用程序,允许您应用插件。虽然您可以使用此工作流程构建跨平台应用程序,但通常更困难,因为缺少高级工具意味着每个平台都需要单独的构建周期和插件修改。
在开始时,使用跨平台工作流程来创建应用程序可能最容易,如创建您的第一个应用程序指南中所述。然后,您可以选择切换到以平台为中心的工作流程,如果您需要 SDK 提供的更大控制权。
注意:一旦您从基于 CLI 的工作流程切换到以特定于平台的 SDK 和 shell 工具为中心的工作流程,您就无法再返回。CLI 维护一组通用的跨平台源代码,它在每次构建时使用它来覆盖特定于平台的源代码。要保留对特定于平台的资源所做的任何修改,您需要切换到以平台为中心的 shell 工具,这些工具会忽略跨平台源代码,而是依赖于特定于平台的源代码。
安装 Cordova
Cordova 的安装方式将取决于您选择的工作流程
-
跨平台工作流程:请参阅创建您的第一个应用程序指南。
-
以平台为中心的工作流程。