概述
Apache Cordova 是一个开源的移动开发框架,允许开发者使用标准的网页技术如 HTML5、CSS3 和 JavaScript 进行跨平台开发,从而避免为每个移动平台使用原生开发语言。应用程序在针对每个平台的包装内执行,并通过符合标准的 API 绑定来访问设备的传感器、数据和网络状态。
Apache Cordova 于 2012 年 10 月成为 Apache 软件基金会 (ASF) 的顶级项目,其未来发展将通过 ASF 确保开放管理。它始终基于 Apache 许可证 2.0 版本,是自由且开源的软件,更多详细信息可访问 cordova.apache.org。
Apache Cordova 适合以下开发者:移动开发人员希望扩展应用程序到多个平台,而无需为每个平台重新实现语言和工具集;网页开发人员希望将网页应用程序打包并分发到各种应用商店;移动开发人员对混合原生应用程序感兴趣,通过 web 视图访问设备级 API,或开发插件接口用于原生和 web 视图组件之间的通信。
基本组件
Apache Cordova 应用程序依赖于一个共同的 config.xml 文件,该文件提供应用程序的信息并指定影响其运作的参数,例如是否响应方向转移。此文件遵循 W3C 的 打包网页应用程序 规范。
应用程序本身作为网页,默认名为 index.html,引用运行所需的 CSS、JavaScript、图像、媒体文件等本地资源。应用程序在包装为原生应用程序的 web 视图中执行,并分发到应用商店。Cordova 使 web 视图能够提供完整的用户界面,在某些平台中,它也可以是混合应用程序的一部分,与原生组件结合。
插件接口允许 Cordova 和原生组件之间进行通信,使 JavaScript 可以调用原生代码。理想情况下,JavaScript API 在不同设备平台上保持一致。从版本 3.0 开始,插件提供绑定到标准设备 API。第三方插件提供额外功能绑定,可在 插件注册表 中找到,开发者也可以根据插件开发指南创建自己的插件。
注:从版本 3.0 开始,创建 Cordova 项目时默认不包含任何插件,即使是核心插件也需要显式添加。Cordova 不提供任何 UI 部件或 MV* 框架,仅提供运行时环境。如果需要 UI 部件或框架,开发者需自行选择并包含为第三方材料。
发展路径
从版本 3.0 开始,有两种基本工作流程来创建移动应用程序:跨平台 (CLI) 工作流程和平台为中心的工作流程。跨平台工作流程适用于希望应用程序在尽可能多的移动操作系统上运行,且最小化平台特定开发的情况。此工作流程围绕 cordova 实用程序(即 Cordova CLI)进行,它是一个高级工具,可一次性生成多平台项目,抽象了低层级 shell 脚本。CLI 将通用的网页资源复制到每个移动平台的子目录,进行必要配置,并运行构建脚本生成应用程序二进制文件。此外,CLI 提供通用接口来管理插件,除非需要平台中心的工作流程,否则建议使用此跨平台工作流程。
平台为中心的工作流程适用于专注于单一平台开发,且需要在低层级进行修改的情况,例如当应用程序需要结合自定义原生组件与基于网页的 Cordova 组件时。此工作流程依赖于每个支持平台的特定 shell 脚本和 Plugman 实用程序来应用插件。虽然可用于构建跨平台应用程序,但由于缺乏高级工具,通常更困难,需要为每个平台单独构建和修改插件。然而,它提供了更多 SDK 开发选项,适合复杂混合应用程序。
初次开始时,建议使用跨平台工作流程创建应用程序。如果需要更多 SDK 控制,可以切换到平台为中心的工作流程。低层级 shell 工具可在 cordova.apache.org 获取,或在 CLI 生成的项目中的 platforms/*/cordova 目录中找到。
注意:一旦从 CLI 工作流程切换到平台特定的 SDK 和 shell 工具,则无法返回。CLI 维护跨平台源代码,并在每次构建时写入平台特定源代码。若要保留平台特定修改,需使用平台中心工具,并依赖平台特定源代码。
安装 Cordova
Cordova 的安装方式取决于选择的工作流程:跨平台工作流程请参阅命令行接口指南,平台为中心的工作流程请参阅平台指南。安装 Cordova 后,建议查看目标平台的开发指南,并审阅隐私指南、安全指南 和后续步骤。配置 Cordova 时,请参考 config.xml 文件。从 JavaScript 访问设备原生功能,请参阅插件 API。其他相关指南可作为参考。