第1章 概述 1
1.1 PhoneGap概述 1
1.1.1 PhoneGap是什么 3
1.1.2 PhoneGap的由来 4
1.1.3 PhoneGap现状 5
1.1.4 PhoneGap的优缺点 7
1.1.5 PhoneGap API简介 10
1.2 HTML5简介 12
1.2.1 HTML5发展史 12
1.2.2 HTML5的新功能 12
1.3 相关技术 13
1.3.1 Titanium 13
1.3.2 Adobe AIR 13
1.3.3 Corona 14
1.3.4 AppMobi 15
1.3.5 JavaScript移动UI框架介绍 15
1.4 小结 16
第2章 基于PhoneGap快速开发移动Web应用 17
2.1 PhoneGap构成 17
2.2 基于PhoneGap移动本地应用开发周期 18
2.3 PhoneGap发布包 19
2.4 Android系统下快速开发 19
2.4.1 环境准备与配置 19
2.4.2 在Android平台上创建基于PhoneGap的Hello World应用 22
2.5 iOS系统下快速开发 32
2.5.1 环境准备与配置 32
2.5.2 在iOS平台上创建基于PhoneGap的Hello World应用 34
2.6 Windows Phone系统下快速开发 39
2.6.1 环境准备与配置 39
2.6.2 在Windows Phone平台上创建基于PhoneGap的Hello World应用 40
2.7 PhoneGap Build 43
第3章 PhoneGap与移动Web应用开发框架 46
3.1 jQuery Mobile+Backbone.js+Underscore.js 46
3.1.1 jQuery Mobile介绍 46
3.1.2 Backbone.js和Underscore.js介绍 48
3.1.3 使用jQuery Mobile、Backbone.js和Underscore.js构建MiniNote原型 52
3.2 Sencha Touch 60
3.2.1 Sencha Touch介绍 60
3.2.2 使用Sencha Touch构建MiniNote原型 68
3.3 Dojo Mobile 79
3.3.1 Dojo Mobile介绍 81
3.3.2 利用Dojo Mobile构建MiniNote原型 86
第4章 PhoneGap事件机制 90
4.1 注册事件监听器 90
4.2 PhoneGap特有事件 91
4.2.1 deviceready 91
4.2.2 backbutton 93
4.2.3 pause和resume 95
4.2.4 searchbutton 97
4.2.5 online和offline 97
4.2.6 menubutton 97
4.2.7 batterycritical、batterylow和batterystatus 99
4.2.8 startcallbutton和endcallbutton 102
4.2.9 volumedownbutton和volumeupbutton 102
第5章 PhoneGap的应用、通知、设备与网络连接API 104
5.1 应用API 104
5.1.1 PhoneGap白名单安全机制 104
5.1.2 主要对象阐述 106
5.1.3 相关业务操作 106
5.2 通知API 107
5.2.1 主要对象阐述 108
5.2.2 相关业务操作 108
5.3 设备API 113
5.3.1 主要对象阐述 113
5.3.2 相关业务操作 113
5.4 网络连接API 114
第6章 PhoneGap的加速计API 117
6.1 加速计原理介绍 117
6.2 加速计应用场景和实例 118
6.3 主要对象阐述 120
6.4 相关业务操作 120
6.4.1 获取当前设备在x、y和z轴上的加速度 120
6.4.2 定期获取设备的加速度信息 122
6.4.3 取消定期获取设备的加速度信息 122
6.4.4 综合实例 124
第7章 PhoneGap的地理位置API 129
7.1 地理位置应用场景和实例 129
7.2 主要对象阐述 130
7.2.1 Position对象 131
7.2.2 PositionError对象 131
7.2.3 Coordinates对象 131
7.2.4 Geolocation选项参数 132
7.3 相关业务操作 132
7.3.1 获取设备当前的地理位置信息 132
7.3.2 定期获取设备的地理位置信息 134
7.3.3 取消定期获取设备的地理位置信息 135
7.3.4 综合实例 137
第8章 PhoneGap的指南针API 139
8.1 指南针原理分析 140
8.2 指南针应用场景和实例 140
8.3 主要对象阐述 141
8.3.1 CompassHeading对象 141
8.3.2 CompassError对象 142
8.3.3 Compass选项参数 142
8.4 相关业务操作 142
8.4.1 获取设备当前的指南针信息 143
8.4.2 定期获取设备的指南针信息 144
8.4.3 取消定期获取设备的指南针信息 144
8.4.4 综合实例:制作一个指南针应用 146
第9章 PhoneGap的照相机API、捕获API和媒体API 150
9.1 照相机API 150
9.1.1 主要对象阐述 150
9.1.2 相关业务操作 151
9.2 捕获API 155
9.2.1 主要对象阐述 155
9.2.2 相关业务操作 156
9.3 媒体API 164
9.3.1 主要对象阐述 164
9.3.2 相关业务操作 164
第10章 PhoneGap的通讯录API 169
10.1 主要对象阐述 169
10.1.1 联系人信息 169
10.1.2 联系人名字 170
10.1.3 联系人邮件和电话 170
10.1.4 联系人的地址 171
10.1.5 联系人组织结构 171
10.2 相关业务操作 171
10.2.1 查找联系人 171
10.2.2 创建联系人 173
10.2.3 保存联系人 173
10.2.4 删除联系人 173
10.2.5 复制联系人 174
10.3 综合实例 174
第11章 PhoneGap的存储API 184
11.1 localStorage 184
11.1.1 主要对象阐述 184
11.1.2 相关业务操作 184
11.2 Web SQL 186
11.2.1 主要对象阐述 186
11.2.2 相关业务操作 186
11.3 IndexedDB 192
11.4 Lawnchair及其他 192
11.4.1 简单应用 193
11.4.2 适配器架构 194
11.4.3 插件架构 195
11.4.4 其他可选存储框架 197
第12章 PhoneGap的文件API 198
12.1 主要对象阐述 198
12.2 相关业务操作 198
12.2.1 文件系统的请求与创建 199
12.2.2 文件操作 201
12.2.3 目录操作 203
12.2.4 文件的上传与下载 205
第13章 PhoneGap插件与嵌入式特性 209
13.1 PhoneGap插件架构 209
13.1.1 总体架构图示 210
13.1.2 工作原理简介 210
13.2 获取PhoneGap插件 210
13.3 使用PhoneGap插件 211
13.3.1 在Android下使用插件 211
13.3.2 在iOS下使用插件 214
13.3.3 在Windows Phone下使用插件 218
13.4 编写PhoneGap插件 220
13.4.1 编写Android插件 221
13.4.2 编写iOS插件 227
13.4.3 编写Windows Phone插件 232
13.5 PhoneGap的嵌入式特性 236
13.5.1 将PhoneGap嵌入iOS应用 236
13.5.2 将PhoneGap嵌入Android应用 238
第14章 PhoneGap第三方插件概览 242
14.1 NativeControls插件介绍 242
14.1.1 NativeControls插件概览 242
14.1.2 NativeControls实例 243
14.2 WebGL插件介绍 245
14.2.1 何为WebGLGap 246
14.2.2 WebGLGap实例 246
14.3 BarcodeScanner插件介绍 247
14.4 Bluetooth插件介绍 250
14.5 SMSPlugin插件介绍 251
14.6 Globalization插件介绍 252
14.7 Mac插件介绍 254
14.8 Windows插件介绍 256
14.9 其他常用插件 257
第15章 PhoneGap应用调试 259
15.1 桌面浏览器调试 259
15.1.1 标准的Web页面调试 259
15.1.2 基于浏览器插件的设备模拟器调试 261
15.2 原生开发环境调试 265
15.2.1 Android模拟器和实体机的调试 265
15.2.2 iOS模拟器和实体机的调试 268
15.3 远程调试 269
15.3.1 使用debug.phonegap.com进行远程调试 269
15.3.2 本地搭建基于weinre的调试服务器 272
15.3.3 基于iOS 5模拟器的远程调试 275
15.3.4 基于新浪移动云的远程调试 277
15.3.5 Adobe Shadow 280
第16章 PhoneGap通信机制的实现原理 285
16.1 本地桥接 285
16.2 Android上的实现原理 285
16.2.1 JavaScript到本地代码的通信 286
16.2.2 本地代码到JavaScript的通信 287
16.2.3 小结 293
16.3 iOS上的实现原理 293
16.3.1 JavaScript到本地代码的通信 293
16.3.2 本地代码到JavaScript的通信 294
16.3.3 小结 297
16.4 其他平台的实现 297
第17章 综合实例 298
17.1 完善对象模型 298
17.2 添加数据持久化功能 299
17.3 添加日期显示功能 302
17.4 添加日期分组功能 302
17.5 添加简易的数据备份与恢复功能 303
17.6 添加拍照功能 307
17.7 编辑笔记功能 310
17.8 发送微博功能 312
17.8.1 创建微博开放平台应用 312
17.8.2 使用微博JS-SDK 314
17.8.3 使用微博JS-Widget 315
17.8.4 使用微博移动云服务 317
17.9 删除笔记功能 318
17.9.1 实现手指滑动删除 318
17.9.2 实现“摇一摇”提示删除功能 320
17.10 添加笔记分类功能 322
17.11 更改应用界面 326
附录A PhoneGap相关资源 327