Cordova概述

概述

Apache Cordova是开源的移动开发框架,允许你使用标准的 web 技术(HTML5CSS3JavaScript)来开发跨平台应用。应用在目标平台的包装器内运行,并依赖于标准的 API 绑定来访问每个设备的能力,例如传感器、数据、网络状态等等。

使用Apache Cordova如果你是:

  • 希望不需要为每个平台语言和工具集重新开发就可以让应用跨平台的移动开发者;
  • 想要打包 web app 来分发到不同的应用商店的 web 开发者;
  • 对混合开发(混合原生应用组件和 WebView )感兴趣的移动开发者,或者想在原生组件和 WebView 之间开发插件接口的开发者。

体系结构

Cordova 应用有几个组件,下图从高层视角展示了 Cordova 应用的体系结构。

Architecture
Architecture

WebView

Cordova有效的 WebView 可以为应用提供全部的用户界面。在某些平台上,也可能是混合了本地应用组件和 WebView 的更大的、混合应用内部的一个组件。

Web App

这是你的应用程序代码驻留的地方。应用本身实现为网页,默认情况下,名为 index.html 的本地文件会引用一些资源(CSS、JavaScript、images、媒体文件或者其它必须的资源)来让应用运行。应用在原生应用程序(就是你分发到应用商店的那个)包装器内部的 WebView 中执行。

容器内有一个非常重要的文件 config.xml。这个文件提供关于应用的一些信息和影响它运行的指定参数,例如是否会响应屏幕旋转。

插件

插件是 Cordova 体系的一个完整部分。它们为 Cordova 和原生组件通信提供接口和标准设备 API 集的绑定,这让你可以通过 JavaScript 调用原生代码。

Apache Cordova 工程维护一组名为核心插件的插件集。这些插件为你的应用提供访问设备的能力,例如电池、照相机、联系人等等。

除了核心插件之外,还有许多第三方插件,这些第三方插件会提供额外的不必对所有平台可用的特性绑定。你可以使用 plugin search 或者 npm 查找 Cordova 插件。你也可以按照 Plugin Development Guide 开发自己的插件。插件可能是必需的,例如,Cordova 和自定义原生组建间的通信。

注意:新创建的 Cordova 工程,没有任何插件出现在里面,这是新的默认行为。任何所需的插件(包括核心插件),都必须显式添加。

Cordova 不提供 UI 部件和 MV* 框架。Cordova仅提供 runtime 环境。如果你要使用 UI 部件或者 MV* 框架,你得自己去选择并包含到你的应用中。

开发路线

Cordova 提供两个基本工作流来开发移动 app,然而你可以同时使用两个工作流来完成同样的任务,它们都有各自的优点。

  • 跨平台(CLI)工作流 如果你希望在指定平台上进行较少的开发就可以让 app 运行到尽可能多的操作系统上面,使用这个工作流。这个工作流以 Cordova CLI 为中心。CLI 是一个高级工具,它允许你快速为多个平台编译工程,抽离了许多底层 shell 脚本功能。CLI把一组通用的 web 资源拷贝到相应平台的子目录,为每个平台修改必要配置,运行脚本来生成应用二进制文件。CLI还提供了通用接口来让你在应用中使用插件。按照 create your first app 指南的步骤来开始。除非你真的需要平台中心工作流,推荐使用跨平台(CLI)工作流
  • 平台中心工作流 如果想要聚焦于为单一平台构建一个 app,并且需要能够在底层进行修改,使用这个工作流。你需要使用这种方式,例如,你想让你的app混合自定义原生组建和基于 web 的 Cordova 组件,就像 Enbedding WebView所讨论的那样。作为一个经验法则:如果需要在 SDK 中修改你的工程,那么使用这个工作流。这个工作流依赖于一组为每个平台剪裁的底层 shell 脚本,以及一个允许你应用插件的Plugman工具。然而你也可以使用这个工作流来构建跨平台应用,这样做通常比较难,因为缺少高级工具意味着分开的构建周期和针对每个平台的插件修改。

刚开始时,按照create your first app 指南使用跨平台工作流来创建app 可能是最容易的。之后如果你需要更多的 SDK 控制,你可以选择切换到平台中心工作流

注意:一旦你从基于 CLI 的工作流切换到以指定平台 SDK 和 shell 工具为中心的工作流,你就不能再切换回去了。CLI 维护一组通用跨平台源码,在每一次编译的时候用来覆写指定平台的源码。为了保存你为指定平台资源所作的修改,你得切换到平台中心的shell工具链,这会忽略跨平台的源码,取而代之的是依赖指定平台的源码。

安装 Corodva

Cordova 的安装根据你选择的工作流有所不同。

安装完Cordova之后,推荐你针对自己的情况查看Develop for platforms章节,同时也推荐你查看Privacy GuideSecurity Guide

译自 : http://cordova.apache.org/docs/en/latest/guide/overview/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,047评论 25 707
  •   因公司项目需要快速开发产品的APP,也因为没有专业原生的APP开发人员(有WAP页面的),后来选择了利用Cor...
    xphuang阅读 2,974评论 1 0
  • 导语 这篇文章主要介绍了如何在Android平台上使用Cordova 的command-line interfac...
    jorstinchan阅读 22,538评论 6 41
  • 前言:用cordova开发hybrid app的过程中,由于是html5开发的app,在手机上很多权限受限制...
    京东内部优惠券阅读 5,295评论 5 65
  • 上班的时候热爱上班,在学校的时候任性的生活,想看书就去图书馆,想听歌就可以在晚上安静的听。 那时候我为生活带去的是...
    汐的岛阅读 345评论 2 0