最近公司想用PhoneGap做跨平臺(tái),所以對(duì)這塊做了一下研究學(xué)習(xí).
PhoneGap
PhoneGap是一個(gè)用基于HTML虐秦,CSS和JavaScript的汗贫,創(chuàng)建移動(dòng)跨平臺(tái)移動(dòng)應(yīng)用程序的快速開發(fā)平臺(tái)筋量。它使開發(fā)者能夠利用IOS臭脓,Android措译,Palm,Symbian,WP7,WP8,Bada和Blackberry智能手機(jī)的核心功能——包括地理定位似嗤,加速器,聯(lián)系人届宠,聲音和振動(dòng)等烁落,此外PhoneGap擁有豐富的插件,可以調(diào)用豌注。
業(yè)界很多主流的移動(dòng)開發(fā)框架均源于PhoneGap伤塌。較著名的有Worklight、appMobi轧铁、WeX5等每聪;其中WeX5為國(guó)內(nèi)打造,完全Apache開源,在融合Phonegap的基礎(chǔ)上药薯,做了深度優(yōu)化他爸,具備接近Native app的性能,同時(shí)開發(fā)便捷性也較好果善。
Phonegap是一款開源的開發(fā)框架诊笤,旨在讓開發(fā)者使用HTML、Javascript巾陕、CSS等Web APIs開發(fā)跨平臺(tái)的移動(dòng)應(yīng)用程序讨跟。原本由Nitobi公司開發(fā),現(xiàn)在由Adobe擁有鄙煤。
它需要特定平臺(tái)提供的附加軟件晾匠,例如iPhone的IOSSDK,Android的Android SDK等梯刚,也可以和DW5.5及以上版本配套開發(fā)凉馆。使用PhoneGap只比為每個(gè)平臺(tái)分別建立應(yīng)用程序好一點(diǎn)點(diǎn),因?yàn)殡m然基本代碼是一樣的亡资,但是你仍然需要為每個(gè)平臺(tái)分別編譯應(yīng)用程序澜共。
PhoneGap在多個(gè)主要的智能手機(jī)設(shè)備上提供了以下功能的支持:
加速計(jì)
攝像頭
羅盤
通訊錄
文檔
地理定位
媒體
網(wǎng)絡(luò)
通知(警告、聲音和振動(dòng))
存儲(chǔ)
如果正在為iPhone或Android設(shè)備做開發(fā)锥腻,那么這些功能都是支持的嗦董。如果是為BlackBerry、webOS瘦黑、Windows
Phone 7京革、Symbian或Bada設(shè)備做開發(fā),則有些功能就不支持了(例如幸斥,在Windows Phone
7上匹摇,就不支持?jǐn)z像頭、羅盤或存儲(chǔ)功能甲葬。老版的BlackBerry型號(hào)支持地理定位廊勃、通知以及網(wǎng)絡(luò)的可達(dá)性,但僅此而已)演顾。
當(dāng)然目前PhoneGap缺陷還是蠻多的供搀,比如運(yùn)行速度慢,UI反應(yīng)延時(shí)——這是個(gè)致命傷钠至。不過(guò)嘛葛虐,這種問(wèn)題是會(huì)隨著技術(shù)的進(jìn)步而消失的。對(duì)此問(wèn)題棉钧,國(guó)內(nèi)已有WeX5開源框架專門對(duì)PhoneGap做了進(jìn)一步深度優(yōu)化屿脐,基于WeX5框架開發(fā)出來(lái)的App體驗(yàn)已經(jīng)接近原生。它的優(yōu)勢(shì)是無(wú)與倫比的:開發(fā)成本低——筆者個(gè)人估計(jì),至多是Native
App的五分之一吧的诵。偉大的政論家托馬斯·約瑟夫·登寧万栅,資本主義為了100%的利潤(rùn),它就敢踐踏一切人間法律西疤》沉#跨平臺(tái)的流行是不可避免的。當(dāng)然代赁,Native
App永遠(yuǎn)會(huì)有一席之地扰她,比如高端游戲.
PhoneGap與Cordova聯(lián)系
Cordova是PhoneGap貢獻(xiàn)給Apache后的開源項(xiàng)目,是從PhoneGap中抽離出的核心代碼芭碍,是驅(qū)動(dòng)PhoneGap的核心引擎徒役。有點(diǎn)類似Webkit和GoogleChrome的關(guān)系。淵源就是:早在2011年10月窖壕,Adobe收購(gòu)了NitobiSoftware和它的PhoneGap產(chǎn)品忧勿,然后宣布這個(gè)移動(dòng)Web開發(fā)框架將會(huì)繼續(xù)開源,并把它提交到ApacheIncubator瞻讽,以便完全接受ASF的管治鸳吸。當(dāng)然,由于Adobe擁有了PhoneGap商標(biāo)卸夕,所以開源組織的這個(gè)PhoneGapv2.0版產(chǎn)品就更名為Apache Cordova层释。(目前Adobe PhoneGap <===>ApacheCordova,似乎只是包名不一樣而已快集,未來(lái)會(huì)有多大變化與改變,拭目以待吧A住8龀酢)
大體了解下PhoneGap后,下面進(jìn)入正題
Cordova安裝
1. cordova的安裝:
1.1 安裝cordova需要先安裝node.js?。
1.2 如果你沒有安裝git client?猴蹂,需要下載并安裝一個(gè)git客戶端院溺。
1.3 使用node.js的依賴包管理工具npm來(lái)進(jìn)行cordova安裝。
打開終端輸入如下命令:
sudo npm install-g cordova
如果你覺得很慢的話 推薦使用淘寶NPM鏡像
使用cnpm(gzip 壓縮支持) 命令行工具代替默認(rèn)的npm:
$ npm install-g cnpm--registry=https://registry.npm.taobao.org
筆者根據(jù)官方命令安裝失敗,然后改為如下命令
$ sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
然后成功
用淘寶鏡像安裝需要在終端使用以下命令行
$ sudo cnpm install -g cordova
安裝成功
創(chuàng)建項(xiàng)目
2.1新建一個(gè)cordova的項(xiàng)目
打開終端輸入如下命令磅轻,該命令可能需要一些時(shí)間來(lái)完成:
cordovacreatehellocom.example.helloHelloWorld[--template templatePath]
2.2 添加平臺(tái)
所有后續(xù)命令需要在項(xiàng)目的目錄中運(yùn)行珍逸,其范圍內(nèi)或任何子目錄:
cd hello
在構(gòu)建項(xiàng)目之前,您需要指定一組目標(biāo)平臺(tái)。你能夠運(yùn)行這些命令取決于您的機(jī)器是否支持每一個(gè)SDK,和你是否已經(jīng)安裝SDK聋溜。從Mac運(yùn)行這些:
cordova platform add ios
cordova項(xiàng)目運(yùn)行
3.1? cordova默認(rèn)使用的 index.html 文件說(shuō)明
根據(jù)自己設(shè)置的路徑,找到項(xiàng)目
運(yùn)行效果如下
好了,下面就可以用cordova
開發(fā)你的程序了.