內容簡介
本書詳細闡述了如何在行動網路瀏覽器上構建高效和豐富的用戶體驗程式,以及各種離線應用程式或者微技(Widget)程式,主要包括瀏覽器和平台,移動Web開發工具,架構和設計,標記和標準,移動HTML5基礎知識,HTML5表單,功能和設備檢測,圖像和多媒體,CSS樣式表,移動JavaScript,離線應用程式、存儲和網路,地理定位與地圖,設備互動,內容推送,調試和性能及網站發布等內容。
本書可以作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
圖書目錄
序 I
前 言 Ⅲ
第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