第1章 安装PhoneGap 1
1.1操作系统 1
1.2所需工具 2
1.3使用iOS入门 3
1.4行动时刻—在模拟器上运行应用程序 3
1.5安装PhoneGap-iPhone 5
1.6行动时刻—PhoneGap-iPhone的Hello World 6
1.6.1刚做了什么? 8
1.6.2突击测验—iPhone上的PhoneGap基础 10
1.7使用Android入门 10
开发环境的说明 11
1.8行动时刻——运行SDK 11
1.8.1刚做了什么? 14
1.8.2 PhoneGap Android 14
1.9行动时刻——PhoneGap Android的Hello World 15
1.9.1刚做了什么? 16
1.9.2 PhoneGap Android应用程序中到底有什么? 16
1.9.3一展身手——深入Android 18
1.10使用BlackBerry Web Works入门 18
1.11行动时刻——第一个PhoneGap BlackBerry应用 18
1.11.1刚做了什么? 24
1.11.2 BlackBerry代码签名 25
1.11.3一展身手——跨平台带来的乐趣 26
1.12小结 26
第2章 在不同平台上构建和调试应用程序 27
2.1使用桌面浏览器进行设计 27
2.1.1 WebKit 28
2.2开发第一个应用程序:You Are The Best 28
2.3行动时刻——初期的设计和功能 28
2.3.1刚做了什么? 32
2.3.2我们的工作流程 33
2.3.3我们的样式 33
1.分离性 33
2.宽度和高度 34
3.-webkit-border-radius 34
2.3.4我们的脚本 35
1.分离性 36
2.addEventListener 36
3.DOMContentLoaded 37
2.3.5突击测验——初期设计 37
2.4使用Web Inspector 38
进入Web Inspector 38
2.5行动时刻——简单的日志和错误检查 39
2.5.1刚做了什么? 43
2.5.2一展身手——玩转Web Inspector和JavaScript 44
2.6移植到原生平台 44
2.7行动时刻——You Are The Best for iPhone 44
2.7.1刚做了什么? 48
2.7.2 <meta name="viewport"> 48
2.7.3 phonegap.js 48
2.7.4 deviceready事件 49
2.7.5一展身手——移植到其他平台 49
2.8总结 50
第3章 从移动站点到移动应用 51
3.1实现Web服务器的角色 51
3.2行动时刻——实现LocalStorage 52
3.2.1刚做了什么? 56
3.2.2其他存储方案 58
1.Web SQL 58
2.Indexed DB 59
3.2.3一展身手——探索LocalStorage 59
3.3视图模板化技术 60
3.4行动时刻——食物详情视图 60
3.4.1刚做了什么? 64
3.4.2突击测验——使用Mustache模板 66
3.4.3访问远程资源跨域策略 66
3.5行动时刻——食物点评 67
3.5.1刚做了什么? 73
3.5.2访问远程资源 74
1.解析远程数据 75
2.事件委托 76
3.Sleight: PhoneGap的开发服务器 78
3.5.3一展身手——让效率更高一些 79
3.6总结 79
第4章 管理跨平台代码库 81
4.1平台之间的内在差别 81
使用单一代码库 82
4.2行动时刻——检测和回退 83
4.2.1刚做了什么? 92
4.2.2用户终端嗅探 92
4.2.3特性检测 94
4.2.4突击测验——特性检测VS用户终端(UA)嗅探 95
4.2.5媒体查询 96
4.2.6一展身手 98
4.2.7预处理代码 99
4.3总结 100
第5章HTML5 API和移动JavaScript 101
5.1移动JavaScript 101
XUI 102
5.2行动时刻——下载、构建以及使用XUI 102
5.2.1刚做了什么? 110
5.2.2为什么不用jQuery? 111
5.2.3突击测验——XUI 112
5.3 HTML5 113
媒体元素 113
5.4行动时刻——使用PhoneGap 114
5.4.1刚做了什么? 116
5.4.2媒体事件和属性 117
5.4.3 audio元素 118
5.4.4突击测验——媒体元素 118
5.4.5 canvas元素 119
5.5行动时刻——晚餐示数面板 120
5.5.1刚做了什么? 125
5.5.2 canvas API 126
5.5.3注意性能 127
5.5.4一展身手 127
5.5.5 HTML5中还有什么? 127
5.6总结 128
第6章CSS3:转场、变形和动画 129
6.1使用CSS3 Transition进行转换 129
6.2行动时刻——模态显示tweet视图 130
6.2.1刚做了什么? 137
6.2.2时间函数 137
6.2.3 CSS3 Transform中其他的函数 138
6.2.4一展身手——CSS3 Transform 138
6.3滚动 139
6.3.1 viewport:可见与不可见 139
6.3.2 iScroll 140
6.4行动时刻——滚动食物列表 140
6.4.1刚做了什么? 144
6.4.2其他解决方法 145
6.4.3突击测验——滚动 145
6.5显式动画 146
6.6行动时刻——让我们的标题动起来 146
6.6.1刚做了什么? 149
6.6.2一展身手 150
6.6.3动画:用CSS3还是HTML5 150
6.7总结 151
第7章 使用PhoneGap调用设备传感器 153
7.1什么是设备传感器? 153
7.2行动时刻——明信片生成器 154
7.2.1刚做了什么? 162
7.2.2 PhoneGap与HTML5的对比 163
7.2.3其他地理位置数据 164
7.2.4突击测验——地理位置 164
7.3加速度计数据 165
7.4行动时刻——监测摇摆 165
7.4.1刚做了什么? 169
7.4.2设备朝向和设备运动事件 169
7.4.3一展身手 170
7.5方向媒体查询 170
7.6行动时刻——横向显示明信片应用程序 170
7.6.1刚做了什么? 175
7.6.2其他媒体查询 175
突击测验——朝向和媒体查询 175
7.6.3磁力计传感器:漏掉的API 176
7.7总结 176
第8章 访问摄像头数据和文件 177
8.1行动时刻——摄像头API入门 177
8.1.1刚做了什么? 183
8.1.2浏览器既不是模拟器也不是设备 183
8.1.3图片源 183
8.1.4其他选项 183
8.1.5突击测验——navigator.camera.getPicture 184
8.2当我们获得图片后,能做些什么? 184
8.3行动时刻——使用图片路径显示图片 185
8.3.1刚做了什么? 188
8.3.2那么,图片在哪里? 188
8.3.3一展身手 188
8.3.4原始图片数据 189
8.4行动时刻——保存照片 189
8.4.1刚做了什么? 194
8.4.2确保已设置quality选项 194
8.4.3突击测验——destinationType 194
8.4.4修改或访问实时数据 195
8.5总结 195
第9章 读写通讯录 197
9.1行动时刻——navigator.service.contacts.find 197
9.1.1刚做了什么? 205
9.1.2 ContactField类型的字段 206
9.1.3一展身手 206
9.1.4写入联系人数据 206
9.2行动时刻——交个朋友 207
9.2.1刚做了什么? 213
9.2.2如果遇到新的问题,我该怎么办? 213
9.2.3 ContactField、ContactName以及类似的对象 213
9.2.4负起责任 214
9.2.5突击测验——通讯录 214
9.3总结 215
第10章PhoneGap插件 217
10.1获取PhoneGap插件 218
10.2行动时刻——集成ChildBrowser插件 218
10.2.1刚做了什么? 224
10.2.2平台间的差异 224
10.2.3漫游PhoneGap插件 224
10.2.4突击测验——使用PhoneGap插件 225
10.2.5编写PhoneGap插件 225
10.3行动时刻——电量视图 226
10.3.1刚做了什么? 235
10.3.2 iOS版PhoneGap插件值得注意的地方 235
10.3.3一展身手 236
10.4移植插件 236
10.5行动时刻——Android和BlackBer 236
10.5.1刚做了什么? 243
10.5.2你需要跨平台插件吗? 244
10.5.3不受限制 244
10.5.4突击测验——编写PhoneGap插件 244
10.6总结 245
第11章 离线运行:同步和缓存 247
11.1 Ruby和Sinatra 247
11.2行动时刻——一个拥有API的新闻站 248
11.2.1刚做了什么? 255
11.2.2 Sinatra的替代者 255
11.2.3突击测验——一个简单的Web服务 255
11.2.4缓存新闻报道 256
11.3行动时刻——在本地数据库缓存新闻 256
11.3.1刚做了什么? 264
11.3.2管理应用程序初始化 264
11.3.3一展身手 265
11.4总结 266
附录A部署到iOS 267
A.1行动时刻——部署到设备上 267
A.1.1刚做了什么? 272
A.1.2一展身手——iOS基础知识 273
附录B突击测验答案 275