Cordova框架原理

一,简介javascript

Cordova是一个用基于HTML,CSS和JavaScript的,建立移动跨平台移动应用程序的快速开发平台。html

Cordova的前身是Phonegap,第一段代码是在2008年8月的iPhoneDevCamp上写成的。java

2011年7月29日,PhoneGap发布了1.0版产品。2011年10月4日Adobe公司收购了PhoneGap和PhoneGap Build的新创公司Nitobi Software,随后将Phonegap的核心代码剥离并捐给了Apache公司,并更名为了Cordova。最新的版本为Cordova6.2.0。ios

二,结构web

第一部分:Cordova Application是Cordova框架独立于不一样手机操做系统的一个封装层。具体包括 
1)Web App层是开发人员编写代码的主要地方,应用程序以网页的形式呈现,在一个index.html的本地页面文件中引用所须要的各类Web资源,如CSS、JavaScript、图像、影音文件等。应用程序的配置保存在config.xml文件中。api

2)WebView层用来呈现用户界面,即web页面的展示。例如,在Android平台是经过WebView控件实现web页面的呈现。架构

3)Plugins主要用于在JavaScript代码中调用各平台native的功能。Cordova项目已经包含一些核心的plugin,如电池、摄像头、通信录等。开发人员也能够开发自定义的plugin,来实现所须要的功能。 app

第二部分:Mobile OS就是具体的手机操做系统层了,Cordova目前支持大部分的手机OS:ios、Android、wp、blackberry等等; 
这张图可让咱们一目了然的了解Cordova框架整体的技术架构。实际上咱们能够这么理解所谓的“跨平台”: 
Cordova预先帮咱们预先封装了各类mobile os上最经常使用的本地api调用,而后以统一的JavaScript api形式提供给webapp开发者调用。(注:cordova还提供另一种Hybird即混合开发模式,这个后面有时间再说。)对于webapp的开发者来讲,无需关注系统底层调用实现细节,也就实现了所谓的“跨平台”。实际上,各平台涉及到本地能力的调用,以插件形式被封装了。(每一个插件的实现实际上仍是Native模式)。框架

JS和Native是如何实现互调的,这里先研究安卓的webapp

Cordova-Android是经过addJavascriptInterface(Android Webview的API)和JS Prompt这两种方式来实现JS对于Native API的调用。

咱们先来看一个Cordova-Android框架中的一个关键类: CordovaActivity.java。
该类继承了Android Activty类,其实是Cordova-Android的Launcher Activity,也就是启动入口activity。

应用启动后,核心干了两件事:读取config.xml和loadUrl。这个loadUrl实际上就是加载webapp的启动页(默认是index.html)

 

相关文章
相关标签/搜索