Cordova框架原理


一,簡介

Cordova是一個用基於HTML,CSS和JavaScript的,創建移動跨平台移動應用程序的快速開發平台。

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

2011年7月29日,PhoneGap發布了1.0版產品。2011年10月4日Adobe公司收購了PhoneGap和PhoneGap Build的新創公司Nitobi Software,隨后將Phonegap的核心代碼剝離並捐給了Apache公司,並改名為了Cordova。最新的版本為Cordova6.2.0。

二,結構

第一部分:Cordova Application是Cordova框架獨立於不同手機操作系統的一個封裝層。具體包括 
1)Web App層是開發人員編寫代碼的主要地方,應用程序以網頁的形式呈現,在一個index.html的本地頁面文件中引用所需要的各種Web資源,如CSS、JavaScript、圖像、影音文件等。應用程序的配置保存在config.xml文件中。

2)WebView層用來呈現用戶界面,即web頁面的展現。例如,在Android平台是通過WebView控件實現web頁面的呈現。

3)Plugins主要用於在JavaScript代碼中調用各平台native的功能。Cordova項目已經包含一些核心的plugin,如電池、攝像頭、通訊錄等。開發人員也可以開發自定義的plugin,來實現所需要的功能。 

第二部分:Mobile OS就是具體的手機操作系統層了,Cordova目前支持大部分的手機OS:ios、Android、wp、blackberry等等; 
這張圖可以讓我們一目了然的了解Cordova框架總體的技術架構。實際上我們可以這么理解所謂的“跨平台”: 
Cordova預先幫我們預先封裝了各種mobile os上最常用的本地api調用,然后以統一的JavaScript api形式提供給webapp開發者調用。(注:cordova還提供另外一種Hybird即混合開發模式,這個后面有時間再說。)對於webapp的開發者來說,無需關注系統底層調用實現細節,也就實現了所謂的“跨平台”。實際上,各平台涉及到本地能力的調用,以插件形式被封裝了。(每個插件的實現實際上還是Native模式)。

JS和Native是如何實現互調的,這里先研究安卓的

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)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM