本書詳細(xì)闡述了如何在移動網(wǎng)絡(luò)瀏覽器上構(gòu)建高效和豐富的用戶體驗程序,以及各種離線應(yīng)用程序或者微技(Widget)程序,主要包括瀏覽器和平臺,移動Web開發(fā)工具,架構(gòu)和設(shè)計,標(biāo)記和標(biāo)準(zhǔn),移動HTML5基礎(chǔ)知識,HTML5表單,功能和設(shè)備檢測,圖像和多媒體,CSS樣式表,移動JavaScript,離線應(yīng)用程序、存儲和網(wǎng)絡(luò),地理定位與地圖,設(shè)備交互,內(nèi)容推送,調(diào)試和性能及網(wǎng)站發(fā)布等內(nèi)容。
本書可以作為高等院校計算機(jī)及相關(guān)專業(yè)的教材和教學(xué)參考書,也可作為相關(guān)開發(fā)人員的自學(xué)教材和參考手冊。
或許,本書初看起來并不那么順手(因為它并不是一本入門讀物,或者實例大全),甚至?xí)尦醮紊孀阋苿泳W(wǎng)絡(luò)開發(fā)的人感到茫然和惱怒。此時,我們不妨冷靜下來,首先設(shè)法彌補(bǔ)自己在某一領(lǐng)域的不足,通過實踐積累知識和經(jīng)驗。之后再回過頭來,便會發(fā)現(xiàn)這本書的可貴之處它的作者M(jìn)aximiliano Firtman以令人吃驚的敬業(yè)態(tài)度,對流行的移動網(wǎng)絡(luò)開發(fā)技術(shù)作了的闡述,對于移動平臺的兼容性進(jìn)行了翔實和精準(zhǔn)的測試,并且將自己從業(yè)多年的寶貴經(jīng)驗和技巧毫無保留地奉獻(xiàn)給每一位讀者。無論你是這一行業(yè)的初學(xué)者,還是資深的網(wǎng)站設(shè)計師、程序開發(fā)人員、項目經(jīng)理、市場經(jīng)理,甚至只是狂熱的手機(jī)收藏家,都會從這本書里找到你所需要的寶藏。
序 I
前 言 Ⅲ
第1章 荊棘密布的移動設(shè)備世界 1
1.1 移動生態(tài)系統(tǒng) 1
1.1.1 什么是移動設(shè)備 1
1.1.2 移動設(shè)備的分類 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 技術(shù)信息 25
第2章 理解移動Web 27
2.1 移動網(wǎng)絡(luò)的神話 27
2.1.1 不要提什么移動網(wǎng)絡(luò),它只是網(wǎng)絡(luò)而已 27
2.1.2 不需要對桌面網(wǎng)站執(zhí)行任何特殊操作 28
2.1.3 一個網(wǎng)站可以工作于所有的設(shè)備之上(桌面系統(tǒng)、移動設(shè)備、電視機(jī)等) 28
2.1.4 只要創(chuàng)建了一個320像素寬的HTML文件,你就可以擁有一個移動網(wǎng)絡(luò)站點 29
2.1.5 移動設(shè)備的本地應(yīng)用程序會讓移動網(wǎng)絡(luò)滅亡 29
2.1.6 人們沒有利用移動網(wǎng)絡(luò)瀏覽器 29
2.2 何為移動Web 30
2.3 移動網(wǎng)絡(luò)時代 31
2.3.1 WAP 1 31
2.3.2 WAP 2.0 32
2.4 移動瀏覽體驗 34
2.4.1 導(dǎo)航方式 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 市場細(xì)分 41
2.5.1 顯示屏 41
2.5.2 輸入方法 48
2.5.3 其他功能 50
2.6 市場統(tǒng)計 50
第3章 瀏覽器和平臺 52
3.1 Web平臺,但并非僅限于瀏覽器 52
3.1.1 HTML5 Web應(yīng)用程序 53
3.1.2 Web視圖 55
3.1.3 偽瀏覽器 56
3.1.4 本地應(yīng)用程序、包應(yīng)用程序和混合應(yīng)用程序 58
3.2 移動瀏覽器 60
3.2.1 預(yù)先安裝的瀏覽器 60
3.2.2 用戶自選安裝的瀏覽器 68
3.3 瀏覽器綜述 71
第4章 移動Web開發(fā)工具 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 真實設(shè)備測試 92
4.2.3 遠(yuǎn)程實驗室 95
4.3 產(chǎn)品環(huán)境 101
4.3.1 Web托管 101
4.3.2 域名 101
4.3.3 錯誤管理 102
4.3.4 數(shù)據(jù)統(tǒng)計 102
第5章 架構(gòu)和設(shè)計 103
5.1 移動策略 103
5.1.1 何時退出瀏覽器 103
5.1.2 環(huán)境上下文 105
5.1.3 服務(wù)器端適應(yīng) 106
5.1.4 漸進(jìn)增強(qiáng) 107
5.1.5 響應(yīng)式Web設(shè)計 109
5.1.6 RESS 113
5.2 導(dǎo)航 114
5.3 設(shè)計和用戶體驗 115
5.3.1 觸摸設(shè)計模式 118
5.3.2 平板電腦模式 120
5.3.3 官方UI指南 121
5.3.4 需要注意的問題 122
第6章 標(biāo)記和標(biāo)準(zhǔn) 124
6.1 回顧過去 124
6.2 現(xiàn)有標(biāo)準(zhǔn) 129
6.2.1 移動網(wǎng)絡(luò)政壇 129
6.2.2 傳輸標(biāo)記信息 130
6.3 XHTML Mobile Profile和XHTML Basic 134
6.3.1 可用的標(biāo)簽 135
6.3.2 官方宣布不兼容的特性 136
6.3.3 創(chuàng)建第一個網(wǎng)頁兼容模板 136
6.3.4 標(biāo)記語言的新增特性 138
6.4 移動HTML5 139
6.4.1 編寫第一個HTML5模板 140
6.4.2 語法規(guī)則 140
6.4.3 新增元素 141
6.5 移動CSS 141
6.5.1 WCSS擴(kuò)展 142
6.5.2 CSS3 145
6.6 HTML5兼容級別 146
第7章 移動HTML5基礎(chǔ)知識 149
7.1 文檔頭 149
7.1.1 標(biāo)題 149
7.1.2 網(wǎng)站圖標(biāo) 150
7.1.3 主頁圖標(biāo) 153
7.1.4 視口 164
7.1.5 改變導(dǎo)航方法 177
7.1.6 移除自動鏈接 178
7.1.7 共享元數(shù)據(jù) 178
7.1.8 隱藏URL地址欄 180
7.1.9 整合本地應(yīng)用程序 182
7.2 文檔體 186
7.3 HTML5移動模板 188
7.4 內(nèi)容 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 表單設(shè)計 195
8.2 表單元素 197
8.2.1 選擇列表 198
8.2.2 單選按鈕和復(fù)選框 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擴(kuò)展 223
8.3.7 Firefox擴(kuò)展 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章 功能和設(shè)備檢測 230
9.1 可能出現(xiàn)的問題 230
9.2 可能的解決方法 231
9.3 信息網(wǎng)站 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回調(diào) 234
9.4.2 CSS回調(diào) 235
9.4.3 供應(yīng)商前綴 236
9.4.4 JavaScript回調(diào) 240
9.4.5 Modernizr 241
9.5 兼容框架 246
9.6 平臺檢測 246
9.7 服務(wù)器端檢測 248
9.7.1 HTTP 248
9.7.2 檢測上下文 255
9.7.3 云瀏覽器 256
9.7.4 移動檢測 258
9.7.5 轉(zhuǎn)碼器 259
9.7.6 設(shè)備庫 260
第10章 圖像和多媒體 274
10.1 圖像 274
10.1.1 圖像格式 274
10.1.2 使用img元素 279
10.1.3 響應(yīng)式圖像 280
10.1.4 本地圖形符號 283
10.2 處理多屏密度 285
10.2.1 向量方案 286
10.2.2 提供單一圖像 287
10.2.3 提供圖像替代內(nèi)容 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 流機(jī)制 315
10.4.5 利用對象實現(xiàn)嵌入操作 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技術(shù) 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 滾動區(qū)域 348
11.5.7 內(nèi)容 349
11.5.8 不透明度(opacity) 349
11.5.9 光標(biāo)管理 350
11.5.10 選取管理 350
11.5.11 觸摸標(biāo)注(Touch Callout) 353
11.5.12 顏色高亮 354
11.5.13 外觀調(diào)整 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 轉(zhuǎn)換 365
11.7.5 漸變效果 371
11.7.6 動畫 374
11.7.7 CSS濾鏡效果 377
11.7.8 CSS區(qū)域和環(huán)繞 378
11.7.9 最新的CSS值和單位 379
第12章 移動JavaScript 380
12.1 移動瀏覽器編碼 381
12.1.1 HTML5腳本擴(kuò)展 382
12.1.2 代碼執(zhí)行 382
12.1.3 基于云的瀏覽器 383
12.2 JavaScript調(diào)試和性能分析 383
12.3 電池消耗 384
12.4 后臺執(zhí)行 384
12.4.1 狀態(tài)檢測 385
12.4.2 后臺標(biāo)簽頁通知操作 388
12.4.3 后臺執(zhí)行兼容性 389
12.4.4 推送通知 390
12.5 支持的技術(shù) 390
12.5.1 文檔對象模型 391
12.5.2 選擇符API 391
12.5.3 JSON 391
12.5.4 二進(jìn)制數(shù)據(jù) 392
12.5.5 Web Workers 392
12.5.6 HTML5 API 394
12.5.7 本地Web應(yīng)用API 394
12.6 標(biāo)準(zhǔn)的JavaScript操作行為 394
12.6.1 標(biāo)準(zhǔn)對話框 394
12.6.2 歷史記錄和URL管理 397
12.6.3 窗口的操作 398
12.6.4 焦點和滾動方式管理 399
12.6.5 定時器 400
12.6.6 改變標(biāo)題 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章 離線應(yīng)用程序、存儲和網(wǎng)絡(luò) 427
13.1 離線Web應(yīng)用程序 427
13.1.1 清單文件 428
13.1.2 訪問在線資源 429
13.1.3 更新數(shù)據(jù)包 430
13.1.4 刪除數(shù)據(jù)包 431
13.1.5 JavaScript API 431
13.1.6 兼容性和限制條件 433
13.2 客戶端存儲 436
13.2.1 Web存儲 436
13.2.2 Web SQL數(shù)據(jù)庫API 439
13.2.3 IndexedDB API 442
13.2.4 文件系統(tǒng)API 444
13.2.5 用戶干預(yù) 445
13.2.6 存儲調(diào)試 446
13.3 網(wǎng)絡(luò)通信 446
13.3.1 Ajax 446
13.3.2 服務(wù)器發(fā)送事件 449
13.3.3 WebSocket 450
第14章 地理定位與地圖 453
14.1 定位技術(shù) 453
14.1.1 精確度 453
14.1.2 室內(nèi)定位 454
14.1.3 客戶端技術(shù) 454
14.1.4 服務(wù)器端技術(shù) 456
14.1.5 詢問用戶 457
14.2 檢測用戶位置 457
14.2.1 W3C Geolocation API 457
14.2.2 運行商網(wǎng)絡(luò)定位API 462
14.2.3 IP地理定位 463
14.3 地圖/導(dǎo)航集成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章 設(shè)備交互 475
15.1 移動URI 475
15.1.1 電話呼叫 476
15.1.2 發(fā)送電子郵件 478
15.1.3 發(fā)送SMS 479
15.1.4 其他通信技術(shù) 480
15.1.5 向電話簿添加聯(lián)系方式 481
15.1.6 與其他應(yīng)用程序整合 482
15.2 JavaScript API 485
15.2.1 觸摸操作 485
15.2.2 手勢操作 493
15.2.3 傳感器 499
15.2.4 網(wǎng)絡(luò)信息 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應(yīng)用 514
16.1 Web App的利弊 514
16.2 Web App架構(gòu) 515
16.2.1 元數(shù)據(jù)配置文件 516
16.2.2 平臺訪問 516
16.2.3 數(shù)據(jù)存儲 516
16.2.4 網(wǎng)絡(luò)訪問 517
16.2.5 邏輯 517
16.2.6 用戶界面 517
16.2.7 打包 517
16.2.8 發(fā)布 518
16.3 標(biāo)準(zhǔn) 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 發(fā)布 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 動態(tài)程序引擎 564
16.7.6 重載Web App 565
第17章 內(nèi)容推送 566
17.1 MIME類型 566
17.1.1 靜態(tài)定義 566
17.1.2 動態(tài)定義 568
17.2 文件傳輸 568
17.2.1 直接鏈接 569
17.2.2 延遲鏈接 569
17.2.3 OMA下載 570
17.3 應(yīng)用程序和游戲的傳送 573
17.3.1 iOS應(yīng)用程序 573
17.3.2 Android應(yīng)用程序 575
17.3.3 Windows應(yīng)用程序 575
17.3.4 Java ME 576
第18章 調(diào)試和性能 579
18.1 調(diào)試 579
18.1.1 服務(wù)器端調(diào)試 579
18.1.2 標(biāo)記調(diào)試 583
18.1.3 客戶端調(diào)試 584
18.2 性能優(yōu)化 591
18.2.1 網(wǎng)站測評 591
18.2.2 最佳實踐 593
第19章 網(wǎng)站發(fā)布和Social Web 2.0 598
19.1 移動搜索引擎優(yōu)化(Mobile SEO) 598
19.1.1 抓取蜘蛛和可發(fā)掘性 599
19.1.2 移動網(wǎng)站地圖(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標(biāo)簽 603
19.3 挽留用戶 604
19.3.1 網(wǎng)絡(luò)快捷方式 604
19.3.2 RSS 604
19.3.3 Open Search 605
19.3.4 Apple Passbook 605
19.4 移動網(wǎng)站統(tǒng)計 606
19.4.1 移動Google Analytics 607
19.4.2 Yahoo! Web Analytics 607
19.4.3 Mobilytics 607
19.5 使用網(wǎng)站來盈利 608
19.6 移動網(wǎng)絡(luò)的社交特性 608
19.6.1 驗證和共享API 609
19.6.2 共享內(nèi)容 609
附錄A 移動內(nèi)容的MIME類型 611
A.1 標(biāo)記語言和腳本的MIME類型 611
A.2 圖像MIME類型 611
A.3 移動內(nèi)容的MIME類型 612
A.4 音頻和視頻MIME類型 613
A.5 微技和WebApp的MIME類型 613