当前,PhoneGap已经成为最流行的移动市场跨平台开发工具之一,越来越多的开发者和知名企业将其作为开发移动应用程序的首选移动跨平台解决方案。
PhoneGap是一个基于HTML、CSS和JavaScript创建跨平台移动应用程序的快速开发平台。与传统Web应用不同的是,它使开发者能够利用iPhone、Android等智能手机的核心本地功能(包括地理定位、加速器、联系人、声音和振动等)。此外,它还拥有非常丰富的插件,并可以凭借其轻量级的插件式架构来扩展无限的功能。
PhoneGap被Adobe公司收购之后,作为Adobe公司向Web平台进军的主打产品被寄予厚望,而其核心模块Cordova作为开源项目捐献给Apache之后也获得了众多IT巨头的支持。目前,PhoneGap的相关技术也在飞速发展,相关的资源也越来越多了。
为了使广大读者能够充分了解PhoneGap的基础知识,并且能结合HTML5相关技术开发相应的移动应用,本书全面介绍了使用PhoneGap进行程序开发的相关知识。在学习完本书之后,相信读者一定能够掌握这门技术,并可以进行实际项目的开发。
本书详细介绍了PhoneGap从1.2到2.x的主要变化和最新特性(比如PhoneGap的嵌入式特性和命令行工具等),以及很多实际开发中比较重要的应用调试方法和开发技巧。同时,书中还深入分析了PhoneGap的源码并详细而准确地描述了JavaScript与本地代码通信的实现原理。此外,本书还结合目前比较流行的移动Web开发框架(jQuery Mobile、Backbone.js、Sencha Touch和Dojo Mobile等)给出了一些比较完整的参考实例,相信会对读者今后的应用开发有一定帮助。
本书共17章,主要内容如下所示。
第1章首先对PhoneGap的概念、历史、现状、优缺点以及API进行了简要介绍,然后介绍了与PhoneGap密切相关的HTML5技术的发展史和新功能,最后对PhoneGap的其他相关技术做了简要描述,包括PhoneGap的主要竞争对手和目前前端开发用到的主流JavaScript框架。
第2章首先阐述了基于PhoneGap的移动本地应用的开发周期,然后介绍如何在主流的移动开发平台Android、iOS和Windows Phone上快速开发一个PhoneGap应用,最后介绍如何利用Adobe提供的PhoneGap Build给各个移动平台打包安装程序。
第3章介绍了PhoneGap如何与流行的移动Web应用开发框架(jQuery Mobile+Backbone.js、Sencha Touch和Dojo Mobile)进行整合,并通过构建MiniNote应用原型来阐述各框架的具体用法。
第4章详细介绍了如何监听和使用PhoneGap独有的各个事件。
第5章首先介绍了白名单安全机制,掌握如何控制外部Web页面加载的方法,然后介绍了如何给应用添加通知信息,最后介绍了获取设备信息以及检测网络状况的方法。
第6章介绍了如何使用PhoneGap的加速计API,包括加速计原理、应用场景、相关对象和方法,最后通过两个小例子——“摇一摇”和“重力感应”回顾了前面介绍的内容。
第7章介绍了如何使用PhoneGap的地理位置API,包括应用场景、相关对象和方法,并提供了两个简单的示例。
第8章介绍了如何使用PhoneGap的指南针API,包括指南针的原理、应用场景、相关对象和方法,最后通过一个综合实例“指南针应用”来加深读者的理解。
第9章介绍如何使用移动设备的各种媒体设备(如照相机和录音器)捕获音频和视频。
第10章介绍PhoneGap如何操作手机的通讯录。首先介绍了PhoneGap提供的与通讯录操作相关的各个对象,然后利用这些对象模拟了一个简单的通讯录操作应用。
第11章介绍PhoneGap所提供的各种存储选项,包含localStorage、WebGL以及诸如Lawnchair之类的流行的轻量级存储方案,并结合实例阐述具体的用法。
第12章介绍如何使用文件系统,包括文件系统的创建、文件和目录的操作以及文件的上传及下载等常见应用场景。
第13章首先介绍了PhoneGap的插件架构并告知读者获取插件的途径,然后详细介绍了如何在Android平台,iOS平台和Windows Phone平台使用插件。之后还介绍了如何在各个平台(Android、iOS、Windows Phone)编写属于自己的插件。最后简单介绍了PhoneGap的嵌入式特性。
第14章对目前比较流行的第三方插件进行了概述。首先重点讲述了NativeControls插件、WebGL插件、二维码插件、蓝牙插件、短信插件、国际化插件,然后对其他常用插件进行了简单介绍并给出了下载地址。值得一提的是,本章还讲述了如何将PhoneGap应用部署到桌面系统上的两个插件:Mac插件和Windows插件。
第15章介绍了PhoneGap在不同开发阶段的应用调试方法,包括桌面浏览器调试、原生开发环境调试以及远程调试。
第16章结合源码分析了PhoneGap在主流平台(iOS和Android)上实现JavaScript和本地代码之间交互通信的原理,并简要介绍了其他平台的实现方式。
第17章通过一个综合实例“Mininote应用”回顾了前面介绍的内容。该实例通过各项具体的功能将之前学习的各类API融汇其中,使读者加深对PhoneGap技术的理解,其功能包括数据存储、数据备份、数据恢复、拍照、发送微博、触摸删除、“摇一摇”删除、笔记分类和界面更换等。
从技术层面上来说,阅读本书的最低要求是能看懂一定的JavaScript代码和HTML代码并进行编写。从环境层面上来说,阅读本书时,读者需要一台电脑,其中配有一个Web浏览器以及一个代码编辑器。
不过,因为PhoneGap是跨平台开发工具,所以读者需要针对不同的平台安装和配置对应的本地SDK。
例如,如果读者想发布基于PhoneGap的iOS应用,那么一台苹果电脑是必不可少的,并且读者还需要安装XCode和PhoneGap相应的SDK。
再比如,如果读者想发布基于PhoneGap的Windows Phone应用,则需要一台PC机并且安装好Visual Studio开发环境。
本书主要面向对开发移动应用程序感兴趣的前端工程师或者是有一些Web技术基础的开发者,大概可以分为以下几个类别:
前端工程师;
中高级Web开发人员;
Web技术爱好者;
有一定Web基础的本地移动应用开发者。
在本书中,读者会看到几个标题频繁出现。为了更清晰地讲解PhoneGap的API,本书使用如下两个标题。
主要对象阐述 。此处阐述了对应API所涉及的主要对象的属性和方法,以便更好地理解下文所要讲解的内容。
相关业务操作 。此处通过实例来阐述对应API的实际用法以及可能遇到的实际问题的解决方法。
此外,读者还可以发现区分不同类型信息的多种文本风格。以下是这些风格的一些示例。比如,代码块或命令行操作如下所示:
警告或重要提示如下所示:
注意 目前,Android和Windows Phone 7 均不支持filter参数。
本书主要由饶侠、张坚、赵莉萍编著,其他参与资料整理的人员有黄平、董龙飞、段少婷、艾婷等人。再次对他们的辛勤工作表示感谢!
感谢我们的家人和朋友在本书写作过程中给予的大力支持和无微不至的照顾,使我们在写作的同时不影响生活和健康。
感谢图灵公司的编辑在整个写作过程中为我们提供的有用建议,感谢她们在沟通过程中给予我们的支持和关心,以及她们在编辑过程中的辛勤工作。
感谢Adobe的同事为我们提供的帮助,这里尤其要感谢以下几位。
Adobe Web Platform & Authoring资深总监Arno,感谢他为我们撰写精彩的序言。
我们的经理黄平,感谢他在写作过程中给予我们的大力支持。
我们的同事董龙飞,感谢他为我们提供了这次难得的机会,使我们可以与中国的前端开发者一起探讨PhoneGap技术。
我们的同事段少婷以及Adobe中国技术社区,感谢他们为我们提供的支持与帮助。
最后,要感谢在本书写作过程中辛勤付出的每一个人,你们都为本书的完成贡献了自己的力量,在此我们谨向他们表达我们最诚挚的谢意!
本书的示例代码均可从图灵社区(www.ituring.com.cn)本书主页免费注册下载。
你只需发送邮件到exploringphonegap@gmail.com,便能把反馈传达给我们,例如对本书的建议、书中的小错误以及关于本书的任何疑问,我们对此将感激不尽。