H5具備跨平臺的能力,並且包含了與App相關的大量新特性,隨着移動瀏覽器不斷加強,使用H5開發(write once)而後使用原生外殼打包成各個平臺的App(run anywhere)就成爲一種可能。PhoneGap就這樣產生了,PhoneGap的目標是彌補手機與Web之間的間隙。跨域
PhoneGap後被Adobe收購,但PhoneGap並無得到普遍的應用,Adobe想經過PhoneGap賺錢就必須吸引更多的人加入到PhoneGap的陣營,而又必須保留營利的機會。因而Adobe將PhoneGap捐給Apache Software Foundation成爲一個開源項目(吸引更多的人開發它<下降成本>和使用它<擴大影響力>),而又保留了PhoneGap的商標。瀏覽器
ASF接收PhoneGap的源代碼後沒法使用PhoneGap的名字,只能更名,因而產生了Cordova。Adobe則在Cordova的基礎上繼續使用PhoneGap的名字發展相關的開發工具,如桌面版工具(PhoneGap Desktop)、移動版運行App(PhoneGap App)、和可以營利的構建雲服務(PhoneGap Build)。最終的結果是,Adobe把吃力的事(寫底層代碼Cordova)拋給了開源組織,本身則把精力放在賺錢上(研發基於Cordova的開發工具PhoneGap)。工具
如今核心代碼在Cordova中,PhoneGap則是Adobe研發的一系列Cordova開發工具和雲服務。開發工具
Cordova提供了不少插件,可使js得到訪問原生API的能力,如控制系統狀態欄、得到電池信息、訪問手機存儲空間等;Cordova還提供了App構建工具,將Web App打包成各類平臺上的原生App,以發佈到應用市場中。值得一提的是Cordova中不存在Ajax跨域限制,所以能夠像原生應用同樣訪問任何域名下的接口。ui