PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry等智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用。
业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等;其中WeX5为国内打造,完全Apache开源,在融合Phonegap的基础上,做了深度优化,具备接近Native app的性能,同时开发便捷性也较好。
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 [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+ | ||||
---|---|---|---|---|---|---|---|---|---|
是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
不适用 | 是 | 是 | 不适用 | 不适用 | 是 | 是 | 不适用 | 是 | |
通讯簿 | 是 | 是 | 是 | 是 | 是 | 不适用 | 是 | 是 | 是 |
档案 | 是 | 是 | 是 | 是 | 是 | 不适用 | 是 | 不适用 | 不适用 |
定位 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
多媒体 | 是 | 是 | 是 | 不适用 | 不适用 | 不适用 | 是 | 不适用 | 不适用 |
网络 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(alert) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(sound) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
通知(vibration) | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
存储 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 不适用 | 不适用 |
Adobe公开表示将会为HTML5开发推出更多有意义的工具。有业内人士表示,Adobe的HTML5战略特别值得注意,此外Adobe对于乔布斯的此番公开批评曾积极地回应道:“乔布斯说的不都是对的。”这是个好的信号,在flash和html5之间犹豫的开发者可以大胆的使用phonegap了,另外html5更注重移动平台,flash更适合pc端。在html5移动应用的架构选择上,PhoneGap无疑是最佳的开发模式。