Codova简介

Cordova是一个跨平台移动应用程序的开发框架。它使用标准的前端开发技术如HTMLCSSJavaScript来创建跨平台的移动应用,然后通过Cordova打包成特定平台下的应用。Cordova还提供了一组兼容的API来调用不同系统的设备如地理定位,加速器,联系人,声音和振动等。Cordova原名PhoneGapPhoneGap后来被adobe公司收购并贡献给了Apache,开源之后更名为CordovaCordova的官网如下:http://cordova.apache.org/。

Cordova体系结构

Cordova开发框架有一系列重要组件,包括WebView,核心插件和WebApp,下图是Cordova开发框架的一个概览图:


 

Web App

Web App是应用代码所在部分,也就是我们开发的资源包工程,应用本身被实现成一个个html页面,在页面中引用了cssjavascript,图片,媒体文件或者其它资源文件。应用在WebView中运行。

WebView

WebView能加载显示网页,它使用了WebKit渲染引擎加载显示网页,本质就是一个浏览器,这也是为什么我们可以web页面跑在移动应用上。原生的移动应用开发有时为了降低难度,也会将一些界面用web页面的形式开发,然后通过WebView显示。Cordova开发框架对WebView进行了扩展,使得Web页面可以同本地代码进行方便的交互。

Plugins

插件是cordova一个重要组成部分,它允许你通过javascript来调用本地代码、访问系统组件。Apache Cordova项目维护着一系列被称为“Core Plugins”的插件。这些核心插件使得你可以以一种统一的方式(javascript)来访问不同操作系统的设备如电池,摄像头,联系人等等,如下图所示:


除了核心插件,还有第三方插件,他们提供了额外的功能,可以通过npm或者官网搜索到这些插件并安装使用。官网插件地址为:

http://cordova.apache.org/plugins/。当然我们也可以开发自己的插件,不过这个流程要稍微复杂一点。我们可以这样理解,使用WebView让我们有了一种统一的方式开发移动应用,而插件则屏蔽了不同手机操作平台的差异。

注意:现在用cordova创建的项目不包含任何插件,所有需要的插件都必须通过npm或者官网进行安装。另外,corodva并没有提供UI控件或者MV*开发框架,它只是一个壳,让你开发的"前端应用"可以运行到手机平台上。如果想使用UI控件或者MV*框架,可以自行加入,如Ionic,AngularJS。其中Ionic是一个开源的UI开发框架,基于cordova。AngularJS是一个前端的MVC开发框架。

开发选择

cordova提供了两种基本的创建app的方式:

1、跨平台(cross platform):如果想让你的应用运行在尽可能多的手机平台上,那么你应当选择跨平台的开发方式(可能会需要一点点针对某个平台的开发)。这种开发方式主要通过cordova命令行工具(CLI)来实现。CLI是一个高级命令行工具,可以一次性将应用打包成不同平台下的应用。它将资源包(www目录)下面的页面(包括html、css、js)复制到各个平台下的子目录中,并为各个平台做一些相应的配置,然后运行生成脚本生成app。CLI还提供安装插件的功能。一般情况下推荐跨平台的开发方式,这才是cordova存在的意义。

2、以特定平台为中心(paltform centered):当你需要为单个平台生成app,并且在接近原生开发的层次上修改代码时,推荐使用这种方式。例如,当你的app自定义的原生组件和cordova的基于web的组件混合使用时,就可以使用这种方式。根据经验,如果需要在SDK内部修改代码,请使用这种开放方式。这种开发方式依赖于一些为各个平台设计的脚本和应用插件的名叫Plugman的组件。这种方式也可以生成跨平台的app,不过缺乏了CLI这样的工具,你需要做更多的工作,例如为每个平台都生成一次,而且为每个平台做一些插件修改。

注意:当你从基于CLI的方式切换到以特定平台为中心的开发方式时,这个过程是不可逆的。CLI包含了一些跨平台的源码,在生成app时会重写各个平台的源码。为了保存你为特定平台做的修改,应当切换到以特定平台为中心的脚本工具,它可以忽略跨平台的源码,保证不会覆盖掉那些修改。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值