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