第1章 荆棘密布的移动设备世界 1
1.1 移动生态系统 1
1.1.1 什么是移动设备 1
1.1.2 移动设备的分类 3
1.2 品牌、型号与平台 8
1.2.1 Apple iOS 8
1.2.2 Android 10
1.2.3 Windows 12
1.2.4 Nokia 15
1.2.5 BlackBerry 18
1.2.6 Samsung 19
1.2.7 Sony Mobile 20
1.2.8 Motorola Mobililty 21
1.2.9 Amazon 21
1.2.10 LG Mobile 22
1.2.11 HTC 22
1.2.12 HP和Palm 22
1.2.13 Firefox OS 23
1.2.14 Ubuntu 23
1.2.15 来自中国的移动平台 24
1.2.16 其他平台 24
1.2.17 智能电视平台 24
1.3 技术信息 25
第2章 理解移动Web 27
2.1 移动网络的神话 27
2.1.1 不要提什么移动网络,它只是网络而已 27
2.1.2 不需要对桌面网站执行任何特殊操作 28
2.1.3 一个网站可以工作于所有的设备之上(桌面系统、移动设备、电视机等) 28
2.1.4 只要创建了一个320像素宽的HTML文件,你就可以拥有一个移动网络站点 29
2.1.5 移动设备的本地应用程序会让移动网络灭亡 29
2.1.6 人们没有利用移动网络浏览器 29
2.2 何为移动Web 30
2.3 移动网络时代 31
2.3.1 WAP 1 31
2.3.2 WAP 2.0 32
2.4 移动浏览体验 34
2.4.1 导航方式 35
2.4.2 缩放功能 36
2.4.3 回流(Reflow)引擎 37
2.4.4 直接浏览器和云浏览器 38
2.4.5 多页面体验 39
2.4.6 Web引擎 40
2.5 市场细分 41
2.5.1 显示屏 41
2.5.2 输入方法 48
2.5.3 其他功能 50
2.6 市场统计 50
第3章 浏览器和平台 52
3.1 Web平台,但并非仅限于浏览器 52
3.1.1 HTML5 Web应用程序 53
3.1.2 Web视图 55
3.1.3 伪浏览器 56
3.1.4 本地应用程序、包应用程序和混合应用程序 58
3.2 移动浏览器 60
3.2.1 预先安装的浏览器 60
3.2.2 用户自选安装的浏览器 68
3.3 浏览器综述 71
第4章 移动Web开发工具 73
4.1 编写代码 73
4.1.1 Adobe Dreamweaver 73
4.1.2 Adobe Edge工具 74
4.1.3 Microsoft Visual Studio和WebMatrix 74
4.1.4 Eclipse 75
4.1.5 本地Web IDE 75
4.2 测试 75
4.2.1 模拟器和仿真器 76
4.2.2 真实设备测试 92
4.2.3 远程实验室 95
4.3 产品环境 101
4.3.1 Web托管 101
4.3.2 域名 101
4.3.3 错误管理 102
4.3.4 数据统计 102
第5章 架构和设计 103
5.1 移动策略 103
5.1.1 何时退出浏览器 103
5.1.2 环境上下文 105
5.1.3 服务器端适应 106
5.1.4 渐进增强 107
5.1.5 响应式Web设计 109
5.1.6 RESS 113
5.2 导航 114
5.3 设计和用户体验 115
5.3.1 触摸设计模式 118
5.3.2 平板电脑模式 120
5.3.3 官方UI指南 121
5.3.4 需要注意的问题 122
第6章 标记和标准 124
6.1 回顾过去 124
6.2 现有标准 129
6.2.1 移动网络政坛 129
6.2.2 传输标记信息 130
6.3 XHTML Mobile Profile和XHTML Basic 134
6.3.1 可用的标签 135
6.3.2 官方宣布不兼容的特性 136
6.3.3 创建第一个网页兼容模板 136
6.3.4 标记语言的新增特性 138
6.4 移动HTML5 139
6.4.1 编写第一个HTML5模板 140
6.4.2 语法规则 140
6.4.3 新增元素 141
6.5 移动CSS 141
6.5.1 WCSS扩展 142
6.5.2 CSS3 145
6.6 HTML5兼容级别 146
第7章 移动HTML5基础知识 149
7.1 文档头 149
7.1.1 标题 149
7.1.2 网站图标 150
7.1.3 主页图标 153
7.1.4 视口 164
7.1.5 改变导航方法 177
7.1.6 移除自动链接 178
7.1.7 共享元数据 178
7.1.8 隐藏URL地址栏 180
7.1.9 整合本地应用程序 182
7.2 文档体 186
7.3 HTML5移动模板 188
7.4 内容 189
7.4.1 块元素 189
7.4.2 列表 189
7.4.3 表格 190
7.4.4 框架 190
7.4.5 链接 191
7.4.6 可访问性 193
第8章 HTML5表单 195
8.1 表单设计 195
8.2 表单元素 197
8.2.1 选择列表 198
8.2.2 单选按钮和复选框 201
8.2.3 按钮 201
8.2.4 隐藏字段 202
8.2.5 文本输入框 202
8.2.6 范围滑块 212
8.2.7 日期输入 212
8.2.8 文件选择 214
8.2.9 非交互式表单元素 219
8.3 表单控件属性 221
8.3.1 占位符 221
8.3.2 自动焦点 222
8.3.3 自动完成功能 222
8.3.4 只读功能 222
8.3.5 输入验证属性 223
8.3.6 Safari扩展 223
8.3.7 Firefox扩展 223
8.3.8 XHTML Mobile输入模式 223
8.3.9 附加的表单属性 224
8.4 表单验证 224
8.4.1 HTML5验证 224
8.4.2 WAP CSS验证 227
第9章 功能和设备检测 230
9.1 可能出现的问题 230
9.2 可能的解决方法 231
9.3 信息网站 232
9.3.1 caniuse.com 232
9.3.2 MobileHTML5.org 233
9.3.3 WebPlatform org 234
9.4 客户端检测 234
9.4.1 HTML回调 234
9.4.2 CSS回调 235
9.4.3 供应商前缀 236
9.4.4 JavaScript回调 240
9.4.5 Modernizr 241
9.5 兼容框架 246
9.6 平台检测 246
9.7 服务器端检测 248
9.7.1 HTTP 248
9.7.2 检测上下文 255
9.7.3 云浏览器 256
9.7.4 移动检测 258
9.7.5 转码器 259
9.7.6 设备库 260
第10章 图像和多媒体 274
10.1 图像 274
10.1.1 图像格式 274
10.1.2 使用img元素 279
10.1.3 响应式图像 280
10.1.4 本地图形符号 283
10.2 处理多屏密度 285
10.2.1 向量方案 286
10.2.2 提供单一图像 287
10.2.3 提供图像替代内容 288
10.2.4 SVG 292
10.2.5 Canvas 298
10.3 Adobe Flash 305
10.4 视频 308
10.4.1 容器和编/解码器 308
10.4.2 视频传送 309
10.4.3 HTML5视频元素 310
10.4.4 流机制 315
10.4.5 利用对象实现嵌入操作 316
10.4.6 视频兼容性 316
10.5 音频 317
10.5.1 不可见的音频播放器 318
10.5.2 Web Audio API 319
10.5.3 音频的兼容性 319
第11章 移动浏览器上的CSS样式表 321
11.1 在哪里插入CSS 321
11.2 媒体查询 322
11.3 选择符 328
11.4 CSS技术 330
11.4.1 重置CSS文件 330
11.4.2 文本格式 332
11.5 通用模式 340
11.5.1 显示属性 340
11.5.2 圆角 342
11.5.3 边界图像 343
11.5.4 拟类型(Pseudoclass) 346
11.5.5 背景 347
11.5.6 滚动区域 348
11.5.7 内容 349
11.5.8 不透明度(opacity) 349
11.5.9 光标管理 350
11.5.10 选取管理 350
11.5.11 触摸标注(Touch Callout) 353
11.5.12 颜色高亮 354
11.5.13 外观调整 354
11.6 CSS图像拼合(CSS Sprites) 355
11.6.1 示例与兼容性 355
11.6.2 CSS Sprites的替代方案 360
11.7 CSS3模块 361
11.7.1 渐变色 361
11.7.2 反射效果 363
11.7.3 遮罩 364
11.7.4 转换 365
11.7.5 渐变效果 371
11.7.6 动画 374
11.7.7 CSS滤镜效果 377
11.7.8 CSS区域和环绕 378
11.7.9 最新的CSS值和单位 379
第12章 移动JavaScript 380
12.1 移动浏览器编码 381
12.1.1 HTML5脚本扩展 382
12.1.2 代码执行 382
12.1.3 基于云的浏览器 383
12.2 JavaScript调试和性能分析 383
12.3 电池消耗 384
12.4 后台执行 384
12.4.1 状态检测 385
12.4.2 后台标签页通知操作 388
12.4.3 后台执行兼容性 389
12.4.4 推送通知 390
12.5 支持的技术 390
12.5.1 文档对象模型 391
12.5.2 选择符API 391
12.5.3 JSON 391
12.5.4 二进制数据 392
12.5.5 Web Workers 392
12.5.6 HTML5 API 394
12.5.7 本地Web应用API 394
12.6 标准的JavaScript操作行为 394
12.6.1 标准对话框 394
12.6.2 历史记录和URL管理 397
12.6.3 窗口的操作 398
12.6.4 焦点和滚动方式管理 399
12.6.5 定时器 400
12.6.6 改变标题 403
12.6.7 Cookie管理 403
12.6.8 事件处理 403
12.6.9 JavaScript程序库 410
12.7 UI框架 413
12.7.1 Sencha Touch 414
12.7.2 jQuery Mobile 415
12.7.3 Enyo 417
12.7.4 Montage 417
12.7.5 iUI 417
12.7.6 jQTouch 418
12.7.7 JavaScript移动用户界面模式 420
第13章 离线应用程序、存储和网络 427
13.1 离线Web应用程序 427
13.1.1 清单文件 428
13.1.2 访问在线资源 429
13.1.3 更新数据包 430
13.1.4 删除数据包 431
13.1.5 JavaScript API 431
13.1.6 兼容性和限制条件 433
13.2 客户端存储 436
13.2.1 Web存储 436
13.2.2 Web SQL数据库API 439
13.2.3 IndexedDB API 442
13.2.4 文件系统API 444
13.2.5 用户干预 445
13.2.6 存储调试 446
13.3 网络通信 446
13.3.1 Ajax 446
13.3.2 服务器发送事件 449
13.3.3 WebSocket 450
第14章 地理定位与地图 453
14.1 定位技术 453
14.1.1 精确度 453
14.1.2 室内定位 454
14.1.3 客户端技术 454
14.1.4 服务器端技术 456
14.1.5 询问用户 457
14.2 检测用户位置 457
14.2.1 W3C Geolocation API 457
14.2.2 运行商网络定位API 462
14.2.3 IP地理定位 463
14.3 地图/导航集成App 464
14.3.1 基于Android的Google Maps 464
14.3.2 iOS Maps 466
14.3.3 Bing Maps 468
14.4 显示地图 468
14.4.1 Google Maps API v3 469
14.4.2 Google Maps Static API 471
14.4.3 Nokia Here 472
第15章 设备交互 475
15.1 移动URI 475
15.1.1 电话呼叫 476
15.1.2 发送电子邮件 478
15.1.3 发送SMS 479
15.1.4 其他通信技术 480
15.1.5 向电话簿添加联系方式 481
15.1.6 与其他应用程序整合 482
15.2 JavaScript API 485
15.2.1 触摸操作 485
15.2.2 手势操作 493
15.2.3 传感器 499
15.2.4 网络信息 503
15.2.5 文件管理 504
15.2.6 全屏 506
15.2.7 Web通知 507
15.2.8 摄像头 509
15.2.9 电池 511
15.2.10 震动效果 512
15.2.11 其他API 512
第16章 本地和安装完毕的Web应用 514
16.1 Web App的利弊 514
16.2 Web App架构 515
16.2.1 元数据配置文件 516
16.2.2 平台访问 516
16.2.3 数据存储 516
16.2.4 网络访问 517
16.2.5 逻辑 517
16.2.6 用户界面 517
16.2.7 打包 517
16.2.8 发布 518
16.3 标准 518
16.4 官方平台 519
16.4.1 iOS Web App 519
16.4.2 Symbian独立WebApp 528
16.4.3 Windows 8 Store App 531
16.4.4 Mozilla Open Web Apps 534
16.4.5 Chrome App 538
16.4.6 Samsung Web App 538
16.4.7 BlackBerry WebWorks App 538
16.4.8 Nokia S40 Web App 546
16.4.9 Nokia Symbian Web App 551
16.5 Apache Cordova/PhoneGap App 556
16.5.1 生成模板 558
16.5.2 Cordova Web View 559
16.5.3 CordovaJS 559
16.6 发布 562
16.6.1 iOS App Store 562
16.6.2 Android Stores 562
16.6.3 BlackBerry AppWorld 563
16.6.4 Microsoft Windows Store 563
16.6.5 Microsoft Windows Phone Store 563
16.7 全屏幕App模式 563
16.7.1 多重视图 563
16.7.2 布局 564
16.7.3 输入方式 564
16.7.4 单视图微技 564
16.7.5 动态程序引擎 564
16.7.6 重载Web App 565
第17章 内容推送 566
17.1 MIME类型 566
17.1.1 静态定义 566
17.1.2 动态定义 568
17.2 文件传输 568
17.2.1 直接链接 569
17.2.2 延迟链接 569
17.2.3 OMA下载 570
17.3 应用程序和游戏的传送 573
17.3.1 iOS应用程序 573
17.3.2 Android应用程序 575
17.3.3 Windows应用程序 575
17.3.4 Java ME 576
第18章 调试和性能 579
18.1 调试 579
18.1.1 服务器端调试 579
18.1.2 标记调试 583
18.1.3 客户端调试 584
18.2 性能优化 591
18.2.1 网站测评 591
18.2.2 最佳实践 593
第19章 网站发布和Social Web 2.0 598
19.1 移动搜索引擎优化(Mobile SEO) 598
19.1.1 抓取蜘蛛和可发掘性 599
19.1.2 移动网站地图(Mobile Sitemap) 599
19.2 用户如何找到你 600
19.2.1 SMS(短消息)邀请 601
19.2.2 电子邮件邀请 602
19.2.3 Mobile Tiny URL 602
19.2.4 二维码(QR码) 602
19.2.5 NFC标签 603
19.3 挽留用户 604
19.3.1 网络快捷方式 604
19.3.2 RSS 604
19.3.3 Open Search 605
19.3.4 Apple Passbook 605
19.4 移动网站统计 606
19.4.1 移动Google Analytics 607
19.4.2 Yahoo! Web Analytics 607
19.4.3 Mobilytics 607
19.5 使用网站来盈利 608
19.6 移动网络的社交特性 608
19.6.1 验证和共享API 609
19.6.2 共享内容 609
附录A移动内容的MIME类型 611
A.1标记语言和脚本的MIME类型 611
A.2图像MIME类型 611
A.3移动内容的MIME类型 612
A.4音频和视频MIME类型 613
A.5微技和WebApp的MIME类型 613