PhoneGap
在等會(huì)談到更深入的細(xì)節(jié)之前,我想解釋一下什么叫做 PhoneGap。PhoneGap 首先是一個(gè)應(yīng)用程序容器技術(shù),它能讓你用 HTML,CSS,JavaScript來(lái)創(chuàng)建原生可安裝的移動(dòng)應(yīng)用程序。PhoneGap 的核心引擎是100%開源的,它是屬于Apache Cordova項(xiàng)目的旗下產(chǎn)品。你可以通過(guò)我的另外一篇文章來(lái)加強(qiáng)了解 PhoneGap.
PhoneGap 用戶界面
PhoneGap 應(yīng)用程序的用戶界面使用 HTML,CSS以及JavaScript來(lái)創(chuàng)建的。而它的界面底層實(shí)質(zhì)上是用瀏覽器視圖創(chuàng)建的,而瀏覽器視圖將占據(jù)真實(shí)設(shè)備的100%寬度與100%的高度。
建議把這個(gè)設(shè)想為一個(gè)無(wú)頭部的Web瀏覽器。與普通瀏覽器一樣可以渲染HTML內(nèi)容,但是不會(huì)顯示普通瀏覽器的邊框。所以你可以充分使用這些空間,比如使用HTML/css創(chuàng)建導(dǎo)航頂部欄。
PhoneGap使用的 Web瀏覽器與手機(jī)操作系統(tǒng)的瀏覽器其實(shí)是一樣的。在IOS上,這將是原生Objective-C的UIWebView類;在Android上,這是android.webkit.WebView。
PhoneGap API
PhoneGap 提供了很多API讓你可以使用JavaScript來(lái)調(diào)用很多原生操作系統(tǒng)提供的功能。整個(gè)過(guò)程就是你用 JavaScript 來(lái)寫程序的邏輯,然后 PhoneGap API 來(lái)處理與原生系統(tǒng)的交互。
另外,你自己也可以使用JavaScript來(lái)創(chuàng)建"原生插件"。PhoneGap 的原生插件能讓你自己去自定義本地類與對(duì)應(yīng)的JavaScript接口。當(dāng)然你可以從讀讀下面幾篇文章區(qū)更好的了解 PhoneGap 原生插件。
PhoneGap 應(yīng)用程序打包與發(fā)布
雖然 PhoneGap 應(yīng)用是用HTML,CSS,JavaScript創(chuàng)建的,但是最終生成的是二進(jìn)制的應(yīng)用程序壓縮文件,這種文件是可以以正規(guī)標(biāo)準(zhǔn)發(fā)布渠道發(fā)布的。
對(duì)于IOS應(yīng)用來(lái)說(shuō),最終輸出是IPA文件,對(duì)于Android應(yīng)用,則是 APK 文件,對(duì)于Windows Phone應(yīng)用,是 xap 文件,等等。最重要的是打包的格式與與標(biāo)準(zhǔn)原生應(yīng)用是一樣的。隨后你就可以在與之對(duì)應(yīng)的賣場(chǎng)上發(fā)布了(iTunes Store,Android Market, Amazon Market, BlackBerry App World,Windows Phone Marketplace等等)
PhoneGap 高級(jí)應(yīng)用程序架構(gòu)
PhoneGap 應(yīng)用程序運(yùn)行起來(lái)更像Web應(yīng)用程序一樣,PhoneGap 客戶端與對(duì)應(yīng)的服務(wù)器交互傳遞數(shù)據(jù)。服務(wù)器先處理業(yè)務(wù)邏輯然后將結(jié)果返回給客戶端。
一般說(shuō)來(lái),服務(wù)器都是指像Apache,IIS這種環(huán)境與一些特定的腳本語(yǔ)言比如 ColdFusion, Java, .NET, PHP等。PhoneGap 是一個(gè)完全的前臺(tái)展示技術(shù)來(lái)與任何類型的服務(wù)器使用標(biāo)準(zhǔn)Web協(xié)議來(lái)交互數(shù)據(jù)。應(yīng)用程序的對(duì)應(yīng)服務(wù)器來(lái)處理業(yè)務(wù)邏輯與計(jì)算,然后從數(shù)據(jù)庫(kù)保存以及獲取數(shù)據(jù)。
PhoneGap 應(yīng)用一般不直接與數(shù)據(jù)庫(kù)打交道;而是以標(biāo)準(zhǔn)HTTP來(lái)與服務(wù)器程序交互。來(lái)獲取HTML內(nèi)容,REST-ful XML Services,JSON Services,或者SOAP。這和你創(chuàng)建的那種基于AJAX技術(shù)的桌面型瀏覽器控件的應(yīng)用是差不多的。
PhoneGap 的這種客戶端模式架構(gòu)一般都是使用 single-page application model,即應(yīng)用程序的邏輯都是在一個(gè)HTML頁(yè)面上。而且頁(yè)面不是從內(nèi)存上清空。所有的數(shù)據(jù)都是需要以HTML DOM的方式來(lái)顯示出來(lái)。首先使用AJAX技術(shù)來(lái)從服務(wù)器上獲取數(shù)據(jù),然后使在JavaScript中保存這些變量。 雖然多頁(yè)面的客戶端程序架構(gòu)現(xiàn)在也被支持了,但是因?yàn)闀?huì)在加載分離頁(yè)面的時(shí)候你回丟失一些需要保存的變量,所以不建議使用這個(gè)新架構(gòu)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。