PhoneGap深入浅出
目录 第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 Titanium13 1.3.2 Adobe AIR13 1.3.3 Corona14 1.3.4 AppMobi15 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的HelloWorld应用22 2.5 iOS系统下快速开发32 2.5.1 环境准备与配置32 2.5.2 在iOS平台上创建基于PhoneGap的HelloWorld应用34 2.6 Windows Phone系统下快速开发39 2.6.1 环境准备与配置39 2.6.2在Windows Phone平台上创建基于PhoneGap的HelloWorld应用40 2.7 PhoneGap Build43 第3章 PhoneGap与移动Web应用开发框架46 3.1 jQuery Mobile+Backbone.js+Underscore.js46 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 Touch60 3.2.1 Sencha Touch介绍60 3.2.2使用Sencha Touch构建MiniNote原型68 3.3 Dojo Mobile79 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 deviceready91 4.2.2 backbutton93 4.2.3 pause和resume95 4.2.4 searchbutton97 4.2.5 online和offline97 4.2.6 menubutton97 4.2.7batterycritical、batterylow和batterystatus99 4.2.8 startcallbutton和endcallbutton102 4.2.9 volumedownbutton和volumeupbutton102 第5章 PhoneGap的应用、通知、设备与网络连接API104 5.1 应用API104 5.1.1 PhoneGap白名单安全机制104 5.1.2 主要对象阐述106 5.1.3 相关业务操作106 5.2 通知API107 5.2.1 主要对象阐述108 5.2.2 相关业务操作108 5.3 设备API113 5.3.1 主要对象阐述113 5.3.2 相关业务操作113 5.4 网络连接API114 第6章 PhoneGap的加速计API117 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的地理位置API129 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的指南针API139 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和媒体API150 9.1 照相机API150 9.1.1 主要对象阐述150 9.1.2 相关业务操作151 9.2 捕获API155 9.2.1 主要对象阐述155 9.2.2 相关业务操作156 9.3 媒体API164 9.3.1 主要对象阐述164 9.3.2 相关业务操作164 第10章 PhoneGap的通讯录API169 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的存储API184 11.1 localStorage184 11.1.1 主要对象阐述184 11.1.2 相关业务操作184 11.2 Web SQL186 11.2.1 主要对象阐述186 11.2.2 相关业务操作186 11.3 IndexedDB192 11.4 Lawnchair及其他192 11.4.1 简单应用193 11.4.2 适配器架构194 11.4.3 插件架构195 11.4.4 其他可选存储框架197 第12章 PhoneGap的文件API198 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 何为WebGLGap246 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 Shadow280 第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-SDK314 17.8.3 使用微博JS-Widget315 17.8.4 使用微博移动云服务317 17.9 删除笔记功能318 17.9.1 实现手指滑动删除318 17.9.2 实现“摇一摇”提示删除功能320 17.10 添加笔记分类功能322 17.11 更改应用界面326 附录A PhoneGap相关资源327