第Ⅰ篇 PhoneGap基础入门篇 2
第1章 PhoneGap3.x开发基础入门 2
1.1 了解基于PhoneGap框架的开发 2
1.2 下载和安装PhoneGap框架 3
1.2.1 在Windows上安装PhoneGap 4
1.2.2 在Mac上安装PhoneGap 5
1.3 关于手机操作系统的知识 6
第2章 建立PhoneGap for Android开发和测试环境 7
2.1 建立开发和测试环境 8
2.1.1 配置Java环境 8
2.1.2 安装ANT和配置环境 10
2.1.3 配置Android环境 11
2.1.4 安装Android SDK用于编译和测试 11
2.1.5 创建和配置Android模拟器 12
2.2 创建PhoneGap工程 14
2.2.1 为PhoneGap工程添加Android平台 14
2.2.2 编译、安装和运行 15
2.3 使用ADT进行PhoneGap开发 15
2.3.1 在模拟器中测试程序 18
2.3.2 实战第一个Android原生应用程序 20
2.3.3 部署到设备测试 21
2.3.4 怎样选择一台合适的设备进行测试 23
2.3.5 编译、提交和安装 24
第3章 建立PhoneGap for iOS开发和测试环境 25
3.1 创建PhoneGap工程 25
3.1.1 为PhoneGap工程添加iOS平台 25
3.1.2 编译、安装和运行 26
3.2 使用Xcode进行PhoneGap开发 26
3.2.1 在模拟器中测试程序 27
3.2.2 实战第一个iOS原生应用程序 28
3.2.3 部署到设备测试 29
3.2.4 编译、提交和安装 29
第Ⅱ篇 PhoneGap原生插件实战篇 31
第4章 内核事件处理和PhoneGap基本使用方法 31
4.1 PhoneGap基本开发方法 31
4.2 处理事件 32
4.2.1 内核事件 33
4.2.2 侦测设备按键 35
第5章 PhoneGap原生插件的管理和程序调试 37
5.1 安装和管理原生插件 37
5.1.1 在开发环境中查看安装的插件 38
5.1.2 查看和删除插件 39
5.1.3 PhoneGap3.x原生插件功能目录 39
5.2 使用插件侦测电量变化 40
5.3 使用控制台调试 42
5.3.1 使用Android控制台 42
5.3.2 使用Xcode控制台 43
5.4 程序内置浏览器窗口 43
5.4.1 打开一个浏览器窗口 44
5.4.2 关闭窗口 45
5.4.3 事件处理 46
5.4.4 显示隐藏的网页 46
5.4.5 执行脚本注入 46
5.4.6 执行CSS样式注入 47
第6章 设备信息和系统消息提示 48
6.1 获取设备相关信息 48
6.2 系统消息提示对话框 49
6.2.1 提示警告框 49
6.2.2 确认对话框 50
6.2.3 提示输入消息对话框 51
6.3 系统震动和蜂鸣提示 53
6.3.1 触发设备蜂鸣 53
6.3.2 触发设备震动 54
第7章 Android和iOS文件系统处理 55
7.1 关于文件系统操作和操作权限 55
7.1.1 Android文件系统操作权限 56
7.1.2 了解Android系统的文件夹 56
7.1.3 iOS文件系统操作权限 58
7.1.4 了解iOS应用程序目录 59
7.2 获取文件系统 61
7.2.1 获得文件系统根目录 61
7.2.2 直接读取目录或者文件 63
7.3 目录处理 64
7.3.1 创建文件夹或者获取对一个文件夹的引用 65
7.3.2 实战案例——实现全兼容性在应用程序目录下创建文件夹 67
7.3.3 获取或者修改文件夹的元数据 68
7.3.4 获取上一级目录 69
7.3.5 目录读取 69
7.3.6 实战案例——遍历目录 70
7.3.7 删除一个文件夹 72
7.3.8 移动和重命名一个文件夹 73
7.3.9 复制一个文件夹 75
7.3.10 实战案例——查一个文件夹是否存在于目标磁盘上 75
7.4 文件处理 76
7.4.1 创建文件或者获取对一个文件的引用 77
7.4.2 获取文件信息 78
7.4.3 获取文件所在目录 79
7.4.4 移动和重命名文件 79
7.4.5 复制和删除文件 80
7.4.6 实战案例——检查一个文件是否存在于目标磁盘上 80
7.4.7 文件切割 81
7.5 读取文件内容 82
7.6 修改文件内容 84
7.6.1 了解FileWriter 86
7.6.2 在文档末尾追加数据 87
7.7 出错处理 87
第8章 建立网络应用程序 90
8.1 关于网络连接 90
8.2 获取网络连接信息 91
8.2.1 侦测网络连接 91
8.2.2 判定连接类型 92
8.3 文件的上传和下载 94
8.3.1 文件的上传和接收 94
8.3.2 文件上传的实现原理 98
8.3.3 文件下载 103
8.3.4 中断操作 104
8.3.5 实战案例——监控上传和下载进程 104
第9章 地理位置定位和LBS 110
9.1 了解位置定位 111
9.1.1 位置定位是怎么工作的 111
9.1.2 位置定位的精确度 112
9.2 使用Geolocation 112
9.2.1 获取Geolocation对象 112
9.2.2 获取当前地理位置 113
9.2.3 处理位置信息 115
9.2.4 出错处理 115
9.2.5 配置项 116
9.2.6 持续追踪位置 117
9.3 实战案例——地理位置定位和在线地图结合使用 119
9.3.1 反向GeoLocation——将经度/维度转换为地名 120
9.3.2 与Google Map结合使用 121
9.3.3 使用Google Maps JavaScript API 127
第10章 感应器应用——重力加速计和罗盘 130
10.1 重力感应器 130
10.1.1 获取当前的加速度偏移量 130
10.1.2 acceleration对象 132
10.1.3 以特定时间间隔获取加速度偏移量 133
10.2 实战案例——让程序随握持方向变动 134
10.3 实战案例——检测甩动(摇动) 136
10.4 实战案例——利用重力感应器控制飞行的游戏 137
10.5 获取设备手持方向——电子罗盘 141
10.6 实战案例——创建指南针应用程序 143
第11章 本地存储——localStorage 148
11.1 使用Web存储 148
11.1.1 在客户端持久存储数据 148
11.1.2 Storage原理 150
11.1.3 获取和更新存储 151
11.1.4 清除存储 152
11.1.5 清除指定的键 153
11.1.6 添加新键和更新键值 153
11.2 实用功能 153
第12章 使用本地数据库存储 156
12.1 使用Web SQL Database 156
12.1.1 第一个Web SQL Database应用 156
12.1.2 使用Web SQL Database的基本步骤 158
12.2 异步数据库 160
12.2.1 执行数据库事务 161
12.2.2 数据库版本管理 163
12.2.3 执行SQL语句 164
12.3 处理数据库操作结果 165
12.4 错误和异常 167
12.5 数据库设计基本知识 167
12.5.1 关于数据库 168
12.5.2 设计数据库 169
12.6 SQL语法入门 171
12.6.1 语法基础知识 172
12.6.2 定义记录集的列 173
12.6.3 限制记录集中的记录 173
12.6.4 对记录集中的记录进行排序 175
12.6.5 联接表 175
12.7 SQLite SQL语法和数据库的数据类型 180
12.7.1 SQLite数据类型 180
12.7.2 检查数据库表是否存在 182
12.7.3 SQLite支持的SQL语法 183
12.7.4 在开发人员工具中使用SQL语句 183
12.8 SQL注入缺陷和参数化查询 183
第13章 管理手机通讯录 185
13.1 创建一个新的联系人 185
13.2 查询联系人 187
13.3 联系人信息的处理——Contact对象 189
13.3.1 关于联系人信息字段 189
13.3.2 关于联系人信息字段所使用的复杂数据类型 191
13.4 克隆联系人 195
13.5 删除联系人 196
13.6 出错处理 196
第14章 从照相机捕捉图片和打开相册库图片 198
14.1 使用Capture对象从照相机捕捉图片 198
14.1.1 检测支持的格式 198
14.1.2 捕捉图片 199
14.1.3 处理捕捉的图片 200
14.1.4 出错处理 203
14.2 使用Camera对象从照相机或本机相册库获取图片 204
14.2.1 处理图片数据 205
14.2.2 定义捕捉选项——cameraOptions 206
14.2.3 出错处理 209
14.2.4 处理图片文件 209
第15章 视频和音频的播放控制 213
15.1 视频的播放和控制 213
15.1.1 视频格式 213
15.1.2 属性 214
15.2 使用source元素 215
15.3 音频的播放和控制 215
15.4 实战案例——自定义HTML5视频和音频控制 217
15.4.1 使用HTML5DOM 218
15.4.2 关于Media元素 219
15.4.3 出错处理 221
15.4.4 关于状态 222
15.4.5 其他属性 222
15.4.6 使用方法控制媒体 223
15.4.7 检测媒体支持 224
15.4.8 媒体事件 224
15.5 使用PhoneGap插件控制音频播放 225
15.5.1 使用方法控制音频 229
15.5.2 出错处理 230
第16章 录音和摄像 232
16.1 使用capture对象录制语音和视频 232
16.1.1 检测支持的格式 232
16.1.2 录制音频 232
16.1.3 实战案例——一次录制多段音频 233
16.1.4 录制视频 235
16.1.5 实战案例——一次录制多段视频 235
16.2 使用Media对象录制音频 237
第17章 实现全屏和添加程序启动界面(splash屏幕) 239
17.1 实现Splash屏幕 239
17.1.1 了解屏幕分辨率 239
17.1.2 Android系统对屏幕的处理 241
17.1.3 实现Splash屏幕 242
17.1.4 实现高度兼容 243
17.2 使用“9切片缩放”图片 243
17.2.1 关于“9切片缩放”图片 244
17.2.2 创建“9切片缩放”图片 244
17.3 管理Splash屏幕 247
17.4 实现全屏 247
17.5 iOS启动界面 248
第18章 应用程序的国际化和区域化 249
18.1 关于操作系统的区域化设置 249
18.1.1 Android的区域化设置 250
18.1.2 关于区域化标示 251
18.2 实现国际化和区域化 251
18.3 出错处理 264
第Ⅲ篇 工程实战和配置篇 266
第19章 应用程序的管理和配置 266
19.1 程序管理功能 266
19.1.1 清空资源缓存 266
19.1.2 历史管理 266
19.1.3 覆盖back按钮默认行为 266
19.1.4 在系统浏览器中加载网页 266
19.2 Cordova配置 267
19.2.1 白名单设置 267
19.2.2 指定要安装的插件 268
19.2.3 程序特性设置 268
19.2.4 在主类中设置 269
19.3 权限配置 270
19.4 实战案例——退出程序实用功能 270
19.4.1 确认退出 270
19.4.2 无网络连接的情况下 271
19.4.3 单击两次退出 271
第20章 设计程序UI 274
20.1 关于jQuery Mobile 274
20.1.1 第一个使用jQuery Mobile的应用程序 276
20.1.2 怎样在“内容页”间导航 279
20.1.3 使用超链接 280
20.1.4 定义页面过渡效果 280
20.1.5 创建对话框 281
20.2 使用样式主题美化jQuery Mobile UI插件 282
20.3 其他jQuery Mobile UI插件 283
第21章 实战案例——结合Google地图路线服务创建驾 284
21.1 Google地图路线服务和静态地图服务 285
21.1.1 Google静态地图服务 285
21.1.2 Google地图路线服务 286
21.2 实现驾车导航应用 292
第22章 实战案例——创建新闻订阅阅读器 298
22.1 关于RSS 298
22.2 构建新闻订阅阅读器 299
22.2.1 了解jQuery Mobile页面结构 300
22.2.2 解析RSS和构建新闻内容页 301
22.2.3 完整的实现 303
第Ⅳ篇 PhoneGap for Android内核原理和插件实战篇 306
第23章 PhoneGap for Android内核原理和自定义插件 306
23.1 创建PhoneGap插件 308
23.2 使用插件 313
23.3 深入解析PhoneGap插件类 317
23.3.1 关于运行线程 317
23.3.2 关于输入参数 318
23.3.3 关于回调函数的参数 319
23.3.4 关于插件返回值的方法 322
第24章 通知栏消息提示 323
24.1 插件配置 323
24.2 通知栏消息提示的管理 327
第25章 条形码扫描和识别 330
25.1 支持库配置 330
25.2 BarcodeScanner插件配置 331
25.3 使用BarcodeScanner 333
第26章 为程序加入短信发送和接收功能 337
26.1 插件配置 337
26.2 实战案例——发送短信程序 339
26.3 实战案例——读取短信程序 342
第27章 文本朗读(TTS) 345
27.1 插件配置 345
27.2 文本朗读 346
27.2.1 使用TTS建立文本朗读程序 346
27.2.1 使用TTS管理引擎 349
第28章 语音识别(SpeechRecognizer) 351
28.1 插件配置 351
28.2 语音识别 352
第29章 屏幕截图 356
29.1 插件配置 356
29.2 实现屏幕截图 359
第30章 电话状态监听 361
30.1 插件配置 361
30.2 实现电话状态监听 367
第31章 视频播放 370
31.1 插件配置 370
31.2 实现视频播放 372
附录A 原生插件配置和权限许可速查 374
附录B 常用区域化标识符及自然语言对照表 383
附录C 安装ADT for Eclipse开发环境 384
附录D 参考文献以及资料来源 387