PhoneGap架構(gòu)基礎(chǔ)及工作原理介紹
為什么需要PhoneGap?
移動(dòng)技術(shù)的發(fā)展對(duì)于開發(fā)人員來(lái)說(shuō)是個(gè)悲劇,開發(fā)應(yīng)用需顧及到不同平臺(tái)的框架和開發(fā)語(yǔ)言,如iPhone、Android、Windows Mobile等。
PhoneGap基于標(biāo)準(zhǔn)的Web技術(shù),在Web應(yīng)用和設(shè)備之間搭建一個(gè)通信的橋梁,封裝移動(dòng)設(shè)備的平臺(tái)差異,統(tǒng)一使用JavaScript接口訪問(wèn)設(shè)備本地API,提供跨平臺(tái)解決方案。
PhoneGap是一個(gè)標(biāo)準(zhǔn)的開源框架,用PhoneGap開發(fā)移動(dòng)應(yīng)用是免費(fèi)的,無(wú)論是商業(yè)或是開源。
PhoneGap能做什么?
1、基于Web技術(shù)開發(fā)移動(dòng)設(shè)備客戶端應(yīng)用
用您熟悉的JavaScript、HTML技術(shù),或者結(jié)合移動(dòng)Web UI框架jQuery Mobile、Sencha Touch 開發(fā)跨平臺(tái)移動(dòng)客戶端。
2、用PhoneGap訪問(wèn)設(shè)備本地API
提供跨平臺(tái)設(shè)備訪問(wèn)能力,以下列出訪問(wèn)設(shè)備部分功能,本系列專題在以后文章中詳解使用方法。
ACCELEROMETER(重力感應(yīng))
CAMERA(攝像機(jī))
COMPASS(指南針)
CONTACTS(通訊錄)
FILE(文件)
GEOLOCATION(地理定位)
MEDIA(媒體)
NETWORK(網(wǎng)絡(luò))
NOTIFICATION (通知)
STORAGE(Sqlite數(shù)據(jù)庫(kù)存儲(chǔ))
3、發(fā)布您的程序到不同移動(dòng)平臺(tái)
Phongap Build 提供在線打包Web應(yīng)用到各移動(dòng)平臺(tái)客戶端的能力,下一篇文章實(shí)例介紹將本社區(qū)開源項(xiàng)目Sencha Touch 2 DEMO打包成Android平臺(tái)APK文件的方法。下圖是PhoneGap Build在線打包完成,并且提供下載的界面:

PhoneGap如何工作?
PhoneGap架構(gòu)擁有強(qiáng)大的跨平臺(tái)訪問(wèn)設(shè)備能力,但是其工作原理并不神秘,下面以iPhone和Android平臺(tái)為例進(jìn)行分析。
iPhone和Android平臺(tái)共同點(diǎn)是都有內(nèi)置的WebView組件,其具備兩個(gè)特性:
1、WebView組件實(shí)質(zhì)是移動(dòng)設(shè)備的內(nèi)置瀏覽器
WebView這個(gè)內(nèi)置瀏覽器特性是Web能被打包成本地客戶端的基礎(chǔ),可方便的用HTML5、CSS3頁(yè)面布局,這是移動(dòng)Web技術(shù)的優(yōu)勢(shì)相對(duì)于原生開發(fā)。
2、WebView提供Web和設(shè)備本地API雙向通信的能力
PhoneGap針對(duì)不同平臺(tái)的WebView做了擴(kuò)展和封裝,使WebView這個(gè)組件變成可訪問(wèn)設(shè)備本地API的強(qiáng)大瀏覽器,所以開發(fā)人員在PhoneGap框架下可通過(guò)JavaScript訪問(wèn)設(shè)備本地API。
明白以上兩個(gè)特性,參照下面PhoneGap與設(shè)備本地API通信圖,一個(gè)成熟的PhoneGap技術(shù)客戶端運(yùn)行狀況如下:
應(yīng)用運(yùn)行在WebView組件上 —》 通過(guò)PhoneGap在各平臺(tái)的擴(kuò)展 —》 最終訪問(wèn)設(shè)備本地資源

原文鏈接:http://www.html5mobi.com/discussion/164/phonegap