商品簡介
作者簡介
名人/編輯推薦
目次
相關商品
商品簡介
內容簡介
本書以實戰為導向,講解了如何用Electron結合現代前端技術來開發桌面應用。不僅全面介紹了Electron入門需要掌握的功能和原理,而且還針對Electron開發中的重點和難點進行了重點講解,旨在幫助讀者實現快速進階。作者是Electron領域的早期實踐者,項目經驗非常豐富,本書內容得到了來自阿裡等大企業的一線專家的高度評價。
本書遵循漸進式的原則逐步傳遞知識給讀者,書中以Electron知識為主線並對現代前端知識進行了有序的整合,對易發問題從深層原理的角度進行講解,對普適需求以*佳實踐的方式進行講解,同時還介紹了Electron生態內的大量組件和項目。
全書一共14章:
第1章講解Electron因何而來,Electron的生態、優勢和不足,以及Electron未來的競爭者PWA技術;
第2章帶領讀者新建了一個簡單的Electron項目,同時為讀者介紹了一些Electron的基礎知識;
第3章講解了主進程和渲染進程的相關內容;
第4章介紹了如何把現代前端框架引入Electron項目中,集中介紹了webpack、Angular、React和Vue等框架;
第5~3章依次詳細講解了界面、數據持久化、操作系統API訪問、硬件設備訪問、測試、調試、安全、發佈等技術及其背後的原理
第14章通過一個完整的工程項目串聯了Electron的核心技術並展示了Electron項目開發的完整流程。
本書以實戰為導向,講解了如何用Electron結合現代前端技術來開發桌面應用。不僅全面介紹了Electron入門需要掌握的功能和原理,而且還針對Electron開發中的重點和難點進行了重點講解,旨在幫助讀者實現快速進階。作者是Electron領域的早期實踐者,項目經驗非常豐富,本書內容得到了來自阿裡等大企業的一線專家的高度評價。
本書遵循漸進式的原則逐步傳遞知識給讀者,書中以Electron知識為主線並對現代前端知識進行了有序的整合,對易發問題從深層原理的角度進行講解,對普適需求以*佳實踐的方式進行講解,同時還介紹了Electron生態內的大量組件和項目。
全書一共14章:
第1章講解Electron因何而來,Electron的生態、優勢和不足,以及Electron未來的競爭者PWA技術;
第2章帶領讀者新建了一個簡單的Electron項目,同時為讀者介紹了一些Electron的基礎知識;
第3章講解了主進程和渲染進程的相關內容;
第4章介紹了如何把現代前端框架引入Electron項目中,集中介紹了webpack、Angular、React和Vue等框架;
第5~3章依次詳細講解了界面、數據持久化、操作系統API訪問、硬件設備訪問、測試、調試、安全、發佈等技術及其背後的原理
第14章通過一個完整的工程項目串聯了Electron的核心技術並展示了Electron項目開發的完整流程。
作者簡介
劉曉倫 ,
資深技術專家,有10餘年研發經驗,是Electron及其相關技術在企業應用領域的早期實踐者,GitHub\/Gitee優秀開源項目作者。作者還為Electron項目提交過數個Issue和Pull Request均被官方接納。
原遠傳研發中心負責人、小遠機器人研發總監。現在擔任一家創業公司的技術負責人,負責的產品以Electron為主要技術方向。
除此之外,作者還有著十餘年的前端及C++(Qt)的開發經驗,深入研究過Chromium的源碼及相關的協議(DevTools Protocol和V8 Debugger Protocol),其主導研發的產品為數家世界五百強企業提供服務。
資深技術專家,有10餘年研發經驗,是Electron及其相關技術在企業應用領域的早期實踐者,GitHub\/Gitee優秀開源項目作者。作者還為Electron項目提交過數個Issue和Pull Request均被官方接納。
原遠傳研發中心負責人、小遠機器人研發總監。現在擔任一家創業公司的技術負責人,負責的產品以Electron為主要技術方向。
除此之外,作者還有著十餘年的前端及C++(Qt)的開發經驗,深入研究過Chromium的源碼及相關的協議(DevTools Protocol和V8 Debugger Protocol),其主導研發的產品為數家世界五百強企業提供服務。
名人/編輯推薦
作者是Electron的早期實踐者,GitHub\/Gitee優秀開源項目作者,本書獲得阿裡等企業的多位一線技術專家好評系統講解Electron的技術棧和運行原理,結合一線項目需求和問題講解Electron的重點和難點
目次
推薦序
前 言
第1章 認識Electron 1
1.1 Electron的由來 1
1.2 基於Electron的應用 4
1.3 Electron的生態 5
1.4 Electron的優勢 5
1.5 Electron的不足 6
1.6 未來的競爭者PWA 7
1.7 本章小結 9
第2章 輕鬆入門 10
2.1 搭建開發環境 10
2.2 創建窗口界面 13
2.3 啟動窗口 14
2.4 引用JavaScript 16
2.5 Electron API演示工具 19
2.6 試驗工具Electron Fiddle 20
2.7 本章小結 22
第3章 主進程和渲染進程 23
3.1 區分主進程與渲染進程 23
3.2 進程調試 25
3.2.1 調試主進程 25
3.2.2 調試渲染進程 27
3.3 進程互訪 29
3.3.1 渲染進程訪問主進程對象 29
3.3.2 渲染進程訪問主進程類型 30
3.3.3 渲染進程訪問主進程自定義內容 31
3.3.4 主進程訪問渲染進程對象 32
3.4 進程間消息傳遞 32
3.4.1 渲染進程向主進程發送消息 32
3.4.2 主進程向渲染進程發送消息 34
3.4.3 渲染進程之間消息傳遞 36
3.5 remote模塊的局限性 36
3.6 本章小結 38
第4章 引入現代前端框架 39
4.1 引入webpack 39
4.1.1 認識webpack 39
4.1.2 配置webpack 40
4.1.3 主進程入口程序 42
4.1.4 渲染進程入口程序 43
4.1.5 自定義入口頁面 45
4.1.6 使用jQuery 46
4.2 引入Angular 46
4.2.1 認識Angular 46
4.2.2 環境搭建 47
4.2.3 項目結構 48
4.3 引入React 48
4.3.1 認識React 48
4.3.2 環境搭建 49
4.3.3 項目結構 50
4.3.4 項目引薦 50
4.4 引入Vue 50
4.4.1 認識Vue 50
4.4.2 環境搭建 51
4.4.3 項目結構 52
4.4.4 調試配置 53
4.5 本章小結 55
第5章 窗口 56
5.1 窗口的常用屬性及應用場景 56
5.2 窗口標題欄和邊框 58
5.2.1 自定義窗口的標題欄 58
5.2.2 窗口的控制按鈕 62
5.2.3 窗口最大化狀態控制 63
5.2.4 防抖與限流 65
5.2.5 記錄與恢復窗口狀態 67
5.2.6 適時地顯示窗口 68
5.3 不規則窗口 69
5.3.1 創建不規則窗口 69
5.3.2 點擊穿透透明區域 71
5.4 窗口控制 72
5.4.1 阻止窗口關閉 72
5.4.2 多窗口競爭資源 74
5.4.3 模態窗口與父子窗口 75
5.4.4 Mac系統下的關注點 76
5.5 本章小結 78
第6章 界面 79
6.1 頁面內容 79
6.1.1 獲取webContents實例 79
6.1.2 頁面加載事件及觸發順序 81
6.1.3 頁面跳轉事件 82
6.1.4 單頁應用中的頁內跳轉 83
6.1.5 頁面縮放 84
6.1.6 渲染海量數據元素 85
6.2 頁面容器 88
6.2.1 webFrame 88
6.2.2 webview 90
6.2.3 BrowserView 91
6.3 腳本注入 93
6.3.1 通過preload參數注入腳本 93
6.3.2 通過executeJavaScript注入腳本 97
6.3.3 禁用窗口的beforeunload事件 99
6.4 頁面動效 100
6.4.1 使用CSS控制動畫 100
6.4.2 使用JavaScript控制動畫 101
6.5 本章小結 102
第7章 數據 103
7.1 使用本地文件持久化數據 103
7.1.1 用戶數據目錄 103
7.1.2 讀寫本地文件 105
7.1.3 值得推薦的第三方庫 106
7.2 使用瀏覽器技術持久化數據 107
7.2.1 瀏覽器數據存儲技術對比 107
7.2.2 使用第三方庫訪問IndexedDB 108
7.2.3 讀寫受限訪問的Cookie 110
7.2.4 清空瀏覽器緩存 112
7.3 使用SQLite持久化數據 112
7.4 本章小結 115
第8章 系統 116
8.1 系統對話框 116
8.1.1 使用系統文件對話框 116
8.1.2 關於對話框 118
8.2 菜單 119
8.2.1 窗口菜單 119
8.2.2 HTML右鍵菜單 121
8.2.3 系統右鍵菜單 124
8.2.4 自定義系統右鍵菜單 125
8.3 快捷鍵 126
8.3.1 監聽網頁按鍵事件 126
8.3.2 監聽全域按鍵事件 126
8.4 託盤圖標 127
8.4.1 託盤圖標閃爍 127
8.4.2 託盤圖標菜單 128
8.5 剪切板 129
8.5.1 把圖片寫入剪切板 129
8.5.2 讀取並顯示剪切板裡的圖片 130
8.6 系統通知 131
8.6.1 使用HTML API發送系統通知 131
8.6.2 主進程內發送系統通知 132
8.7 其他 133
8.7.1 使用系統默認應用打開文件 133
8.7.2 接收拖拽到窗口中的文件 134
8.7.3 使用系統字體 135
8.7.4 最近打開的文件 137
8.8 本章小結 138
第9章 通信 139
9.1 與Web服務器通信 139
9.1.1 禁用同源策略以實現跨域 139
9.1.2 Node.js訪問HTTP服務的不足 141
9.1.3 使用WebSocket通信 142
9.1.4 截獲並修改網絡請求 144
9.2 與系統內其他應用通信 146
9.2.1 Electron應用與其他應用通信 146
9.2.2 網頁與Electron應用通信 148
9.3 自定義協議(protocol) 150
9.4 使用socks5代理 152
9.5 本章小結 153
第10章 硬件 154
10.1 屏幕 154
10.1.1 獲取擴展屏幕 154
10.1.2 在自助服務機中使用Electron 156
10.2 音視頻設備 158
10.2.1 使用攝像頭和麥克風 158
10.2.2 錄屏 159
10.3 電源 160
10.3.1 電源的基本狀態和事件 160
10.3.2 監控系統掛起與鎖屏事件 161
10.3.3 阻止系統鎖屏 162
10.4 打印機 162
10.4.1 控制打印行為 162
10.4.2 導出PDF 164
10.5 硬件信息 165
10.5.1 獲取目標平臺硬件信息 165
10.5.2 使用硬件串號控制應用分發 166
10.6 本章小結 170
第11章 調測 171
11.1 測試 171
11.1.1 單元測試 171
11.1.2 界面測試 174
11.2 調試 177
11.2.1 渲染進程性能問題追蹤 177
11.2.2 自動追蹤性能問題 180
11.2.3 性能優化技巧 182
11.2.4 開發環境調試工具 185
11.2.5 生產環境調試工具 186
11.3 日誌 188
11.3.1 業務日誌 188
11.3.2 網路日誌 189
11.3.3 崩潰報告 190
11.4 本章小結 193
第12章 安全 194
12.1 保護源碼 195
12.1.1 立即執行函數 195
12.1.2 禁用開發者調試工具 196
12.1.3 源碼壓縮與混淆 198
12.1.4 使用asar保護源碼 201
12.1.5 使用V8字節碼保護源碼 202
12.2 保護客戶 204
12.2.1 禁用Node.js集成 204
12.2.2 啟用同源策略 204
12.2.3 啟用沙箱隔離 205
12.2.4 禁用webview標簽 205
12.3 保護網絡 206
12.3.1 屏蔽虛假證書 206
12.3.2 關於防盜鏈 209
12.4 保護數據 211
12.4.1 使用Node.js加密解密數據 211
12.4.2 保護lowdb數據 213
12.4.3 保護electron-store數據 213
12.4.4 保護用戶界面 214
12.5 提升穩定性 214
12.5.1 捕獲全域異常 214
12.5.2 從異常中恢復 215
12.6 本章小結 216
第13章 發佈 218
13.1 生成圖標 218
13.2 生成安裝包 219
13.3 代碼簽名 221
13.4 自動升級 222
13.5 本章小結 224
第14章 實戰:自媒體內容發佈工具 225
14.1 項目需求 225
14.2 項目架構 226
14.2.1 數據架構 226
14.2.2 技術架構 228
14.3 核心剖析 229
14.3.1 創建窗口並注入代碼 229
14.3.2 開始同步文章數據 230
14.3.3 檢查是否登錄 232
14.3.4 上傳文章圖片 233
14.3.5 設置文章標題 235
14.3.6 設置文章正文 236
14.3.7 其他工作 236
14.4 輔助功能 237
14.4.1 圖
前 言
第1章 認識Electron 1
1.1 Electron的由來 1
1.2 基於Electron的應用 4
1.3 Electron的生態 5
1.4 Electron的優勢 5
1.5 Electron的不足 6
1.6 未來的競爭者PWA 7
1.7 本章小結 9
第2章 輕鬆入門 10
2.1 搭建開發環境 10
2.2 創建窗口界面 13
2.3 啟動窗口 14
2.4 引用JavaScript 16
2.5 Electron API演示工具 19
2.6 試驗工具Electron Fiddle 20
2.7 本章小結 22
第3章 主進程和渲染進程 23
3.1 區分主進程與渲染進程 23
3.2 進程調試 25
3.2.1 調試主進程 25
3.2.2 調試渲染進程 27
3.3 進程互訪 29
3.3.1 渲染進程訪問主進程對象 29
3.3.2 渲染進程訪問主進程類型 30
3.3.3 渲染進程訪問主進程自定義內容 31
3.3.4 主進程訪問渲染進程對象 32
3.4 進程間消息傳遞 32
3.4.1 渲染進程向主進程發送消息 32
3.4.2 主進程向渲染進程發送消息 34
3.4.3 渲染進程之間消息傳遞 36
3.5 remote模塊的局限性 36
3.6 本章小結 38
第4章 引入現代前端框架 39
4.1 引入webpack 39
4.1.1 認識webpack 39
4.1.2 配置webpack 40
4.1.3 主進程入口程序 42
4.1.4 渲染進程入口程序 43
4.1.5 自定義入口頁面 45
4.1.6 使用jQuery 46
4.2 引入Angular 46
4.2.1 認識Angular 46
4.2.2 環境搭建 47
4.2.3 項目結構 48
4.3 引入React 48
4.3.1 認識React 48
4.3.2 環境搭建 49
4.3.3 項目結構 50
4.3.4 項目引薦 50
4.4 引入Vue 50
4.4.1 認識Vue 50
4.4.2 環境搭建 51
4.4.3 項目結構 52
4.4.4 調試配置 53
4.5 本章小結 55
第5章 窗口 56
5.1 窗口的常用屬性及應用場景 56
5.2 窗口標題欄和邊框 58
5.2.1 自定義窗口的標題欄 58
5.2.2 窗口的控制按鈕 62
5.2.3 窗口最大化狀態控制 63
5.2.4 防抖與限流 65
5.2.5 記錄與恢復窗口狀態 67
5.2.6 適時地顯示窗口 68
5.3 不規則窗口 69
5.3.1 創建不規則窗口 69
5.3.2 點擊穿透透明區域 71
5.4 窗口控制 72
5.4.1 阻止窗口關閉 72
5.4.2 多窗口競爭資源 74
5.4.3 模態窗口與父子窗口 75
5.4.4 Mac系統下的關注點 76
5.5 本章小結 78
第6章 界面 79
6.1 頁面內容 79
6.1.1 獲取webContents實例 79
6.1.2 頁面加載事件及觸發順序 81
6.1.3 頁面跳轉事件 82
6.1.4 單頁應用中的頁內跳轉 83
6.1.5 頁面縮放 84
6.1.6 渲染海量數據元素 85
6.2 頁面容器 88
6.2.1 webFrame 88
6.2.2 webview 90
6.2.3 BrowserView 91
6.3 腳本注入 93
6.3.1 通過preload參數注入腳本 93
6.3.2 通過executeJavaScript注入腳本 97
6.3.3 禁用窗口的beforeunload事件 99
6.4 頁面動效 100
6.4.1 使用CSS控制動畫 100
6.4.2 使用JavaScript控制動畫 101
6.5 本章小結 102
第7章 數據 103
7.1 使用本地文件持久化數據 103
7.1.1 用戶數據目錄 103
7.1.2 讀寫本地文件 105
7.1.3 值得推薦的第三方庫 106
7.2 使用瀏覽器技術持久化數據 107
7.2.1 瀏覽器數據存儲技術對比 107
7.2.2 使用第三方庫訪問IndexedDB 108
7.2.3 讀寫受限訪問的Cookie 110
7.2.4 清空瀏覽器緩存 112
7.3 使用SQLite持久化數據 112
7.4 本章小結 115
第8章 系統 116
8.1 系統對話框 116
8.1.1 使用系統文件對話框 116
8.1.2 關於對話框 118
8.2 菜單 119
8.2.1 窗口菜單 119
8.2.2 HTML右鍵菜單 121
8.2.3 系統右鍵菜單 124
8.2.4 自定義系統右鍵菜單 125
8.3 快捷鍵 126
8.3.1 監聽網頁按鍵事件 126
8.3.2 監聽全域按鍵事件 126
8.4 託盤圖標 127
8.4.1 託盤圖標閃爍 127
8.4.2 託盤圖標菜單 128
8.5 剪切板 129
8.5.1 把圖片寫入剪切板 129
8.5.2 讀取並顯示剪切板裡的圖片 130
8.6 系統通知 131
8.6.1 使用HTML API發送系統通知 131
8.6.2 主進程內發送系統通知 132
8.7 其他 133
8.7.1 使用系統默認應用打開文件 133
8.7.2 接收拖拽到窗口中的文件 134
8.7.3 使用系統字體 135
8.7.4 最近打開的文件 137
8.8 本章小結 138
第9章 通信 139
9.1 與Web服務器通信 139
9.1.1 禁用同源策略以實現跨域 139
9.1.2 Node.js訪問HTTP服務的不足 141
9.1.3 使用WebSocket通信 142
9.1.4 截獲並修改網絡請求 144
9.2 與系統內其他應用通信 146
9.2.1 Electron應用與其他應用通信 146
9.2.2 網頁與Electron應用通信 148
9.3 自定義協議(protocol) 150
9.4 使用socks5代理 152
9.5 本章小結 153
第10章 硬件 154
10.1 屏幕 154
10.1.1 獲取擴展屏幕 154
10.1.2 在自助服務機中使用Electron 156
10.2 音視頻設備 158
10.2.1 使用攝像頭和麥克風 158
10.2.2 錄屏 159
10.3 電源 160
10.3.1 電源的基本狀態和事件 160
10.3.2 監控系統掛起與鎖屏事件 161
10.3.3 阻止系統鎖屏 162
10.4 打印機 162
10.4.1 控制打印行為 162
10.4.2 導出PDF 164
10.5 硬件信息 165
10.5.1 獲取目標平臺硬件信息 165
10.5.2 使用硬件串號控制應用分發 166
10.6 本章小結 170
第11章 調測 171
11.1 測試 171
11.1.1 單元測試 171
11.1.2 界面測試 174
11.2 調試 177
11.2.1 渲染進程性能問題追蹤 177
11.2.2 自動追蹤性能問題 180
11.2.3 性能優化技巧 182
11.2.4 開發環境調試工具 185
11.2.5 生產環境調試工具 186
11.3 日誌 188
11.3.1 業務日誌 188
11.3.2 網路日誌 189
11.3.3 崩潰報告 190
11.4 本章小結 193
第12章 安全 194
12.1 保護源碼 195
12.1.1 立即執行函數 195
12.1.2 禁用開發者調試工具 196
12.1.3 源碼壓縮與混淆 198
12.1.4 使用asar保護源碼 201
12.1.5 使用V8字節碼保護源碼 202
12.2 保護客戶 204
12.2.1 禁用Node.js集成 204
12.2.2 啟用同源策略 204
12.2.3 啟用沙箱隔離 205
12.2.4 禁用webview標簽 205
12.3 保護網絡 206
12.3.1 屏蔽虛假證書 206
12.3.2 關於防盜鏈 209
12.4 保護數據 211
12.4.1 使用Node.js加密解密數據 211
12.4.2 保護lowdb數據 213
12.4.3 保護electron-store數據 213
12.4.4 保護用戶界面 214
12.5 提升穩定性 214
12.5.1 捕獲全域異常 214
12.5.2 從異常中恢復 215
12.6 本章小結 216
第13章 發佈 218
13.1 生成圖標 218
13.2 生成安裝包 219
13.3 代碼簽名 221
13.4 自動升級 222
13.5 本章小結 224
第14章 實戰:自媒體內容發佈工具 225
14.1 項目需求 225
14.2 項目架構 226
14.2.1 數據架構 226
14.2.2 技術架構 228
14.3 核心剖析 229
14.3.1 創建窗口並注入代碼 229
14.3.2 開始同步文章數據 230
14.3.3 檢查是否登錄 232
14.3.4 上傳文章圖片 233
14.3.5 設置文章標題 235
14.3.6 設置文章正文 236
14.3.7 其他工作 236
14.4 輔助功能 237
14.4.1 圖
主題書展
更多
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。