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)

 

相關文章
相關標籤/搜索