PhoneGap是什么

PhoneGap是什么

PhoneGap是为移动应用开发者准备的,使用HTML、JavaScript和CSS等Web技术创建跨平台移动应用的基于标准的开源开发框架。使用PhoneGap,Web应用开发者的开发范畴被进一步拓展到类本地应用(混合应用)的开发领域。总的来说,PhoneGap从以下三个方面帮助开发者。

打包:对于标准的Web应用,消费者需要打开移动设备上的浏览器,输入URL后才能访问。而PhoneGap可以打包Web应用为本地应用格式,比如iOS的ipa、Android的apk。对于消费者来说,通过PhoneGap打包的应用和使用本地SDK(比如iOS的Objective-C、Android的Java)开发的应用没什么区别。消费者需要到移动应用商店下载这些应用,安装运行。为了方便起见,在下文中我把这些使用Web技术开发、通过PhoneGap打包成本地格式的移动应用统称为“PhoneGap应用”。

访问智能移动设备本地特性:智能移动设备上的现代浏览器提供了一些本地特性的访问,比如GPS。然而,对于移动应用开发来说,需要能够访问更多的本地特性,比如设备摄像头、设备信息、通讯录等。

PhoneGap提供了诸多本地特性的JavaScript API接口,使得开发者使用JavaScript即可访问这些浏览器本身不能够支持的本地特性。

扩展插件:PhoneGap在不断推出访问本地功能的新API接口,但对于移动应用开发者,仍然可能需要访问一些PhoneGap尚不支持的功能,或者希望能够使用本地API来解决一些需要重度计算的功能。这时,PhoneGap提供了一套插件体系来帮助开发者定制扩展插件。事实上,标准的PhoneGap本地API也是以插件的方式提供的。通过插件方式,开发者可以使用平台指定的本地语言(例如Java)编写功能,并通过JavaScript把这些定制化的本地代码暴露出来供PhoneGap应用访问。

在不同平台上,PhoneGap1.3支持本地特性概览

PhoneGap不是什么

PhoneGap既不是JavaScript框架,也不是类似jQuery Mobile这样的移动应用框架,PhoneGap也不提供IDE环境。

开发者仍然需要依赖类似JQuery Mobile,Sencha Touch这样的第三方Web移动应用开发框架开发基本的Web移动应用。但PhoneGap支持这些移动应用开发框架。事实上,PhoneGap并不局限于任何一种JavaScript框架。

PhoneGap现状

截至本文发表时,PhoneGap的最新版本是1.4。2011年10月,Adobe公司收购了PhoneGap并将其贡献给Apache软件基金会,命名为Apache Callback。在经过正式审核和必要的流程前,PhoneGap仍处于孵化器阶段。在这个过程中,Apache Callback的名称近来再次变更为Apache Cordova。PhoneGap作为产品的商业名称仍然被使用。开发者可以在Apache和Github上访问PhoneGap的源代码【注:https://github.com/callback或https://svn.apache.org/repos/asf/incubator/callback/】。

打包

我们回到PhoneGap的第一个重要功能—打包。有三种不同方式打包生成PhoneGap应用。

使用Dreamweaver打包。Adobe Dreamweaver可以帮助开发者创建jQuery Mobile+PhoneGap的移动应用项目,如图2所示。

为了针对移动项目,Dreamweaver提供了一种一键式打包命令。然而,这种方式一方面目前只支持iOS和Android这两种移动平台应用;另一方面,开发者仍然需要先下载并配置平台对应的SDK。

使用不同平台的IDE和SDK打包。这种更加直接的打包方式是使用针对不同平台的IDE环境和对应的SDK手工打包【注:在PhoneGap网站的Get Started Guide上详细介绍了针对不同平台的打包指南http://phonegap.com/start】。

使用这种方式的话,不同平台的打包方式略有不同,开发者甚至需要自己编写打包代码,例如针对Android平台,并配置相关的配置文件和SDK。尽管这些步骤非常简单,但实际上对于那些希望能够覆盖尽可能多平台的移动应用开发者来说,这种方式还是非常烦琐。

使用PhoneGap Build服务打包。为了解决繁琐的打包问题,PhoneGap提供了在线打包服务:PhoneGap Build【注:连接为https://build.phonegap.com/】。

开发者需要注册账号,并上传代码到Github,在完成相关配置后,PhoneGap Build在云端直接编译打包Web应用为本地格式应用,甚至同时生成相关的应用二维条形码。

创建JQuery Mobile+PhoneGap的移动应用项目

使用PhoneGap访问本地特性

使用JavaScript调用PhoneGap提供的本地特性,就像使用任何标准的JavaScript类库。在PhoneGap官方网站上查看编写良好的本地特性API列表和代码示例【注:链接为http://docs.phonegap.com/en/1.3.0/index.html】,如图3所示。

添加一条评论 »本文共 6 条评论

  1. 初来乍到,踩一下很有必要!

    甲午年(马)冬月十九 2015-1-9

  2. 写的很好,很有用,顶。感谢博主无私分享!大家支持起来 也欢迎支持下我的站小站 空包网

    • 谢谢支持!

  3. 再次来访,希望每次都有新鲜感。

    • 欢迎再次来访!

      WordPress数据库查询SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC 时发生Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'jingjing.wp_posts.post_date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by错误,这是由require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/green-hope/single.php'), get_sidebar, locate_template, load_template, require_once('/themes/green-hope/sidebar.php'), dynamic_sidebar, call_user_func_array, WP_Widget->display_callback, WP_Widget_Archives->widget, wp_get_archives查询的。

  4. 仔细拜读,表示支持!

    甲午年(马)腊月初八 2015-1-27

Copyright © All Rights Reserved · 菁菁博客 Since 2012 · Proudly powered by WordPress