国产精品亚洲成在人线_又大又粗又猛免费视频_国产免费福利在线视频_美女禁区A级全片免费观看

您當(dāng)前的位置:首頁 > 新聞資訊 > 產(chǎn)品動態(tài) > 正文

【新東網(wǎng)技術(shù)大咖帶您走進(jìn)Cordova】通過Apache Cordova將Web應(yīng)用移動化

發(fā)布時間: 2016-12-16 11:55:25  
分享到:

 

文/黃劍鋒 智慧城市事業(yè)部

 

 

Cordova 是什么
 

 

Apache Cordova是一個開源的移動開發(fā)框架。 它可以讓你使用標(biāo)準(zhǔn)的Web技術(shù) - HTML5,CSS3和JavaScript進(jìn)行跨平臺開發(fā)。 應(yīng)用程序在各個平臺上運(yùn)行,并通過標(biāo)準(zhǔn)的API來訪問和使用手機(jī)內(nèi)嵌的各種設(shè)備的功能,如傳感器、本地?cái)?shù)據(jù)、網(wǎng)絡(luò)狀態(tài)等。

 

Apache Cordova主要適用于以下三種人:

 

移動開發(fā)者,希望可以實(shí)現(xiàn)跨平臺開發(fā),但同時又不希望花時間去學(xué)會各平臺的語言,或者重新開發(fā)其他平臺的應(yīng)用。

 

Web開發(fā)人員,希望在不接觸客戶端開發(fā)人員的幫助下,就實(shí)現(xiàn)簡單的Web移動應(yīng)用程序的開發(fā)。

 

插件開發(fā)人員,希望在Web端訪問移動端設(shè)備,或者調(diào)用原生本地的方法,實(shí)現(xiàn)Web與原生混合開發(fā)。

 

Cordova的體系架構(gòu)
 

 

下圖是Cordova官網(wǎng)對于Cordova總體架構(gòu)的描述:

 


 

第一部分:Cordova Application是Cordova框架獨(dú)立于不同手機(jī)操作系統(tǒng)的一個封裝層。具體包括 :

 

1)Web APP(包括具體的APP的HTML/JS/CSS代碼等); 

 

2)Cordova框架已經(jīng)封裝好的核心插件(如相機(jī)、存儲等系統(tǒng)調(diào)用),這塊是Cordova的核心部分。當(dāng)然,開發(fā)者也可以基于它的插件體系,擴(kuò)展出新的插件; 

 

第二部分:Mobile OS就是具體的手機(jī)操作系統(tǒng)層了,Cordova目前支持大部分的手機(jī)OS:iOS、Android、winphone、blackberry等等; 

 

這張圖可以讓我們一目了然地了解Cordova框架總體的技術(shù)架構(gòu)。實(shí)際上我們可以這么理解所謂的“跨平臺”: Cordova預(yù)先幫我們封裝了各種mobile OS上最常用的本地api調(diào)用,然后以統(tǒng)一的JavaScript api形式提供給Web APP開發(fā)者調(diào)用。對于Web APP的開發(fā)者來說,無需關(guān)注系統(tǒng)底層調(diào)用實(shí)現(xiàn)細(xì)節(jié),也就實(shí)現(xiàn)了所謂的“跨平臺”。實(shí)際上,各平臺涉及到本地能力的調(diào)用,以插件形式被封裝了。(每個插件的實(shí)現(xiàn)實(shí)際上還是Native模式)。

 

 

Cordova的實(shí)現(xiàn)方式(Android)
 

 

 

Cordova-Android是通過addJavascriptInterface(Android Webview的API)和JS Prompt這兩種方式來實(shí)現(xiàn)JS對于Native API的調(diào)用。

 

具體介紹這兩種方式前,我們先來看一個Cordova-Android框架中的一個關(guān)鍵類:CordovaActivity.java。 該類繼承了Android Activty類,實(shí)際上是Cordova-Android的Launcher Activity,也就是啟動入口activity。我們通過一張圖來描述下它干了哪些事: 

 

 

應(yīng)用啟動后,核心干了兩件事:讀取config.xml和loadUrl。這個loadUrl實(shí)際上就是加載Web APP的啟動頁(默認(rèn)是index.html)。而config.xml,它主要負(fù)責(zé)整個應(yīng)用程序信息的配置,對我們自定義的插件進(jìn)行聲明,在讀取config.xml時會將插件的類名存到一個map中,以便從獲取到實(shí)例對象執(zhí)行相應(yīng)的方法。同時通過修改config.xml這個文件可以達(dá)到諸如是否加載遠(yuǎn)程一面、是否可通過H5直接調(diào)用撥打電話等功能。開發(fā)者需要根據(jù)自己的實(shí)際需求來修改這個文件。

 

addJavascriptInterface方式
 

 

下圖為JS調(diào)用原生方法的整個流程:

 

CordovaActivity在執(zhí)行l(wèi)oadUrl時會先獲取一個CordovaWebVIew實(shí)例對象:

 


 

此時傳入的WebViewEngine對象的實(shí)體是SystemWebViewEngine:

 

在SystemWebViewEngine中,則是以addJavascriptInterface方式來實(shí)現(xiàn)Js調(diào)用原生的:

 

此時查看SystemExposedJsApi 

 

通過@JavascriptInterface暴露方法給JS,這里的exec接口方法實(shí)際上就實(shí)現(xiàn)了從JS到Native調(diào)用的“橋”。

 

CordovaBridge中的jsExec最終會執(zhí)行如下方法,其中g(shù)etPlugin是通過從JS端獲取到的service名稱在pluginMap中獲取到對應(yīng)的插件類,同時執(zhí)行execute方法,達(dá)到了JS調(diào)用原生的目的。

 

對于JS Prompt這種方式,原理上大同小異。實(shí)際上Cordova在SystemWebChromeClient.java這個類中重載了OnJsPrompt方法。實(shí)際的調(diào)用過程如下:webapp->prompt()->OnJsPrompt()->Native()。

分享到:
地址:福建省福州市銅盤路軟件大道89號軟件園A區(qū)26號樓 電話:0591-83519233 傳真:0591-87882335 E-mail:doone@doone.com.cn
版權(quán)所有 新東網(wǎng)科技有限公司 閩ICP備07052074號-1 閩公網(wǎng)安備 35010202001006號
av片在线观看| 99亚洲精品久久久99| 久久青青草原亚洲av无码app| 国产精品香蕉在线观看| 亚洲精品无码aⅴ中文字幕蜜桃| 内射中出日韩无国产剧情| 乌克兰少妇xxxx做受野外| 色噜噜狠狠狠综合曰曰曰| av在线观看地址| 99久久久无码国产aaa精品| 亚洲精品久久国产精品| 久久av无码精品人妻糸列| 成人欧美一区二区三区的电影| 亚洲乱亚洲乱少妇无码99p| 97av麻豆蜜桃一区二区| 乱码av麻豆丝袜熟女系列| 国产xxx69麻豆国语对白| 精品久久久久久国产| 风韵少妇性饥渴推油按摩视频| 久久av一区二区三区| 亚洲av永久无码一区| 四虎成人精品在永久免费| 久久国产精品波多野结衣av| 一二三四在线视频社区3| 韩日午夜在线资源一区二区| 色欲av伊人久久大香线蕉影院| 丰满少妇熟女高潮流白浆| 99爱在线精品免费观看| 人妻体内射精一区二区| 屁屁影院ccyy备用地址| a在线观看免费网站大全| 又色又爽又黄的视频软件app| 麻豆网神马久久人鬼片| 国产精品无码无卡在线观看久| 亚洲中文字幕无码一区| 久久久99精品成人片| 99香蕉国产精品偷在线观看| 精品无码综合一区二区三区| 国内成+人 亚洲+欧美+综合在线| 色综合久久网| 刺激性视频黄页|