定義
Phonegap是一款開源的開發框架,旨在讓開發者使用HTML、Javascript、CSS等Web APIs開發跨平台的移動應用程式。原本由Nitobi公司開發,現在由Adobe擁有。
它需要特定平台提供的附加軟體,例如iPhone的IOS SDK,Android的Android SDK等,也可以和DW5.5及以上版本配套開發。使用PhoneGap只比為每個平台分別建立應用程式好一點點,因為雖然基本代碼是一樣的,但是你仍然需要為每個平台分別編譯應用程式。
起源
第一段PhoneGap代碼是在2008年8月的iPhoneDevCamp上寫成的。創建它的一個主要動力是基於一個幾乎每一個單獨的iPhone開發新手都要面對的簡單事實:Objective-C是一個對Web開發人員來說非常陌生的環境,並且Web開發人員的數量遠遠多於Objective-C開發人員的數量。
問題是,是否有人可以開發一個框架,讓Web開發人員可以利用他們所有的HTML、CSS和JavaScript知識,而且仍舊可以同iPhone的重要本地應用程式(如攝像頭和通訊錄)互動呢?
就在那一年,PhoneGap獲了獎並開始支持Android平台,對人數不斷增長的移動開發人員變得越來越有用,這些人員需要在更多的平台上獲得代碼支持。
狀態評估
截止 2014年5月14日,phonegap的最新版本為3.4.1 。PhoneGap在多個主要的智慧型手機設備上提供了以下功能的支持:
•加速計
•攝像頭
•羅盤
•通訊錄
•文檔
•地理定位
•媒體
•網路
•通知(警告、聲音和振動)
•存儲
如果正在為iPhone或Android設備做開發,那么這些功能都是支持的。如果是為BlackBerry、webOS、Windows Phone 7、Symbian或Bada設備做開發,則有些功能就不支持了(例如,在Windows Phone 7上,就不支持攝像頭、羅盤或存儲功能。老版的BlackBerry型號支持地理定位、通知以及網路的可達性,但僅此而已)。
未來發行版本的路線圖包括對Contact API的升級,將其更新到最新的W3C規範。此外,計畫支持以下功能(這只是嘗試,而非完整的路線圖):
•加密
•Websockets
•Web通知
•HTML媒體捕獲
•Calendar API
•國際化支持
•命令行編譯
•網損/恢復事件
版本
2011年7月29日,PhoneGap發布了1.0版產品。PhoneGap 1.0的推出,該公司表示,重點是訪問本地設備的API。
其他的改進包括:
API的整體穩定和“可插拔”的架構W3C DAP API的兼容性聯繫人API遠程調試工具一個新的統一的橋接口,使增加平台和平台擴展容易改進的外掛程式開發流程。
2011年10月1日,PhoneGap發布了1.1.0版產品。
新功能:
1.支持黑莓playbook的WebWorks併入。
2.orientationchange事件。
3.媒體審查(使用HTML5的音頻和/或正常化的API)。
2012年3月6日,PhoneGap發布了1.5.0版產品。
2013年1月 PhoneGap發布了2.3.0版產品
Adobe已經發布PhoneGap2.3.0完全支持Windows Phone 8。它還包括支持inappbrowser這使您可以在全螢幕模式觀看視頻檔案。新版本提供了一個在檔案傳輸失敗能夠刪除不完整檔案的新特性,還包括外掛程式查詢urlisallowed()方法抽象。
PhoneGap2.3.0包括輔助腳本轉換cordova.plist向config.xml和包括了幾個bug修復,詳細的官方更新日誌。該device的name屬性已被否決所有平台和一個新的屬性被命名為device.model已被釋放來取代它。
該inappbrowser具有相同功能的childbrowser,包括事件的支持和不使用軟體白名單。
PhoneGap2.3.0有固定的例外而搜尋郵件聯繫人。它也修正了一個問題,而將照片從https地址聯繫和科爾多瓦的命令,在他們的空間路徑。
功能
1、兼容性。完全做到了written once, run everywhere。
2、標準化。PhoneGap用W3C標準,特別標準,Web App直接一字不改就能運行。尤其是和JQ Mobile結合在一起使用,實在是威力無窮啊!
3、用JavaScript+HTML5。你說這和iOS以及Android的代碼加XML有區別嗎?我看都差不多。
當然目前PhoneGap缺陷還是蠻多的,比如運行速度慢,UI反應延時——這是個致命傷。不過嘛,這種問題是會隨著技術的進步而消失的。對此問題,國內已有WeX5開源框架專門對PhoneGap做了進一步深度最佳化,基於WeX5框架開發出來的App體驗已經接近原生。它的優勢是無與倫比的:開發成本低——筆者個人估計,至多是Native App的五分之一吧。偉大的政論家托馬斯·約瑟夫·登寧,資本主義為了100%的利潤,它就敢踐踏一切人間法律。跨平台的流行是不可避免的。當然,Native App永遠會有一席之地,比如高端遊戲.
公司近況
電腦軟體公司Adobe 2011年10月4日宣布收購了創建了HTML5 移動套用框架PhoneGap 和PhoneGap Build的新創公司Nitobi Software。
收購後,Adobe將為開發人員提供兩個強大的跨平台原生移動應 用程式開發工具:基於 HTML5 和 JavaScript 腳本的 PhoneGap,以及 Adobe Flash? 與Adobe AIR?。PhoneGap 的開源框架目前已被下載超過 60 萬次,有幾千款用PhoneGap 構建的應用程式已經進入Android、iOS、黑莓和其他作業系統的移動應用程式商店當中。
支持平台
PhoneGap目前支持的作業系統包含:
蘋果的iOS,谷歌的Android,RIM的Blackberry,惠普的WebOS,微軟的Windows Phone,塞班公司的Symbian以及三星的bada
Feature | iPhone /iPhone 3G | iPhone 3GS and newer | Android | 5.x | 6.0+ | webOS | Windows Phone | Symbian | Bada |
加速規 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
照相機 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
羅盤 | 不適用 | 是 | 是 | 不適用 | 不適用 | 是 | 是 | 不適用 | 是 |
通訊簿 | 是 | 是 | 是 | 是 | 是 | 不適用 | 是 | 是 | 是 |
檔案 | 是 | 是 | 是 | 是 | 是 | 不適用 | 是 | 不適用 | 不適用 |
定位 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
多媒體 | 是 | 是 | 是 | 不適用 | 不適用 | 不適用 | 是 | 不適用 | 不適用 |
網路 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(alert) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(sound) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(vibration) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
存儲 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 不適用 | 不適用 |
前景
Adobe公開表示將會為HTML5開發推出更多有意義的工具。有業內人士表示,Adobe的HTML5戰略特別值得注意,此外Adobe對於賈伯斯的此番公開批評曾積極地回應道:“賈伯斯說的不都是對的。”這是個好的信號,在flash和html5之間猶豫的開發者可以大膽的使用phonegap了,另外html5更注重移動平台,flash更適合pc端。在html5移動套用的架構選擇上,PhoneGap無疑是最佳的開發模式。