ELECTRON跨平臺開發實戰
作 者: (美)史蒂文·金尼(Steve Kinney) 著 塗曙光 譯
定 價: 98
出?版?社: 清華大學出版社
出版日期: 2019年09月01日
頁 數: 392
裝 幀: 平裝
ISBN: 9787302534891
●第Ⅰ部分 Electron入門知識
章 介紹Electron 3
1.1 什麼是Electron 3
1.1.1 什麼是Chromium Content Module 5
1.1.2 什麼是Node.js 6
1.2 哪些人在使用Electron 6
1.3 閱讀本書之前,需要知道些什麼 8
1.4 為何要使用Electron 8
1.4.1 重用現有技能 10
1.4.2 訪問原生操作繫統API 10
1.4.3 更高運行權限,更少功能限制 11
1.4.4 在瀏覽器環境中使用Node的功能 13
1.4.5 離線優先 14
1.5 Electron的工作原理 14
1.5.1 主進程 15
1.5.2 渲染器進程 15
1.6 對比Electron與NW.js 16
1.7 本章小結 17
第2章 創建個Electron應用 19
2.1 創建一個書簽列表應用 20
2.1.1 組織Electron應用的結構 21
2.1.2 package.json 22
2.1.3 在項目中並安裝Electron 23
2.2 使用主進程 25
2.3 創建一個渲染器進程 26
2.3.1 從渲染器進程加載代碼 30
2.3.2 在渲染器進程中引入文件 31
2.3.3 在渲染器進程中添加樣式 32
2.4 實現UI界面 33
2.4.1 在Electron中發出跨域請求 35
2.4.2 解析響應文本 36
2.4.3 使用Web Storage API存儲從響應中得到的信息 38
2.4.4 顯示請求的結果 39
2.4.5 預防錯誤 43
2.4.6 一個不期而至的bug 45
2.5 本章小結 49
第Ⅱ部分 使用Electron創建跨平臺應用
第3章 創建一個筆記應用 53
3.1 定義應用的目標 54
3.2 打下基礎 55
3.3 初始化並啟動應用 56
3.3.1 實現UI界面 57
3.3.2 優雅地顯示瀏覽器窗口 63
3.4 實現基本功能 64
3.5 調試Electron應用 67
3.5.1 調試渲染器進程 67
3.5.2 調試主進程 68
3.5.3 使用Visual Studio Code調試主進程 69
3.6 本章小結 72
第4章 使用原生文件對話框與實現跨進程通信 73
4.1 觸發原生文件對話框 74
4.2 使用Node讀文件內容 77
4.2.1 限定允許打開的文件類型 78
4.2.2 在macOS繫統中實現工作表對話框 81
4.3 實現跨進程通信 82
4.4 使用跨進程通信調用文件打開功能 87
4.4.1 理解CommonJS模塊繫統 88
4.4.2 引入其他進程的功能 88
4.5 從主進程向渲染器進程發送內容 90
4.6 本章小結 95
第5章 創建多窗口應用 97
5.1 創建和管理多個窗口 98
5.1.1 主進程與多個窗口之間的通信 99
5.1.2 將指向當前窗口的引用傳給主進程 101
5.2 改進新建窗口的用戶體驗 103
5.3 與macOS集成 105
5.4 本章小結 108
第6章 操作文件 111
6.1 跟蹤當前打開的文件 113
6.1.1 使用當前文件的名稱更新窗口標題 114
6.1.2 檢測是否修改過當前文件 116
6.1.3 啟用UI界面上的Save File和Revert按鈕 118
6.1.4 更新macOS繫統的展示文件 119
6.2 跟蹤最近打開的文件 120
6.3 保存文件 122
6.3.1 導出渲染的HTML內容 123
6.3.2 常用路徑 124
6.3.3 從渲染器進程保存文件 125
6.3.4 保存當前文件 125
6.3.5 回滾文件 127
6.4 通過拖曳打開文件 127
6.4.1 忽略無關區域的拖曳操作 127
6.4.2 提供可視化反饋 128
6.4.3 打開拖曳過來的文件 131
6.5 監控文件的變動 131
6.6 丟棄未保存的修改前提示用戶 134
6.7 本章小結 138
第7章 創建應用菜單和上下文菜單 141
7.1 替換並復制默認菜單 143
7.1.1 macOS繫統的Edit菜單消失之謎 144
7.1.2 替換Electron默認菜單的隱形代價 146
7.1.3 實現Edit和Window菜單 147
7.1.4 定義菜單項的role屬性和鍵盤快捷鍵 148
7.1.5 恢復macOS繫統的應用菜單 149
7.1.6 添加Help菜單 153
7.2 在菜單中添加應用特有的功能 155
7.3 創建上下文菜單 160
7.4 本章小結 162
第8章 與操作繫統更深入地集成以及動態啟用菜單項 163
8.1 在渲染器進程(UI界面)中使用shell模塊 164
8.2 在應用菜單中使用shell模塊 167
8.3 在上下文菜單中使用shell模塊 169
8.3.1 決定將功能放在菜單中還是UI界面上 170
8.3.2 決定將功能放在應用菜單還是上下文菜單中 171
8.4 在適當的時候禁用菜單項 171
8.4.1 動態啟用和禁用上下文菜單中的菜單項 172
8.4.2 動態啟用和禁用應用菜單中的菜單項 175
8.5 本章小結 181
第9章 介紹tray模塊 183
9.1 開始創建Clipmaster 184
9.2 使用tray模塊創建一個應用 185
9.2.1 為macOS和Windows選擇不同的圖標 187
9.2.2 支持macOS的深色模式 188
9.2.3 從剪貼板讀取內容並保存剪貼項 189
9.3 讀寫剪貼板的內容 191
9.3.1 寫入剪貼板 193
9.3.2 處理極端場景 195
9.4 注冊全局快捷鍵 198
9.5 顯示通知 201
9.6 在macOS繫統中單擊菜單欄圖標時,切換顯示的圖標 204
9.7 完整的代碼 205
9.8 本章小結 208
0章 在應用中使用menubar庫 209
10.1 使用menubar開始創建應用 210
10.2 向UI界面添加剪貼項 214
10.3 在應用中操作剪貼項 216
10.3.1 使用事件代理避免內存洩漏 216
10.3.2 刪除一個剪貼項 217
10.3.3 將數據寫入剪貼板 219
10.4 發布剪貼項 220
10.5 顯示通知和注冊全局快捷鍵 223
10.5.1 注冊全局快捷鍵 224
10.5.2 處理從未打開過窗口的極端場景 226
10.6 添加第二個菜單 227
10.7 本章小結 229
1章 使用轉譯器和框架 231
11.1 介紹electron-compile 233
11.2 打造應用的基礎 234
11.3 在React中創建UI界面 241
11.3.1 Application組件 241
11.3.2 顯示物品列表 244
11.4 添加新的物品 248
11.5 實時重新加載與模塊熱加載 252
11.5.1 啟用實時重新加載 252
11.5.2 實現模塊熱加載 253
11.6 本章小結 256
2章 保存用戶數據以及使用Node.js原生模塊 259
12.1 在SQLite數據庫中存儲數據 260
12.1.1 使用electron-rebuild確保編譯出正確的版本 261
12.1.2 使用SQLite和Knex.js 262
12.1.3 將數據庫功能掛載到React應用 263
12.1.4 從數據庫獲取所有數據項 265
12.1.5 向數據庫中添加數據項 266
12.1.6 更新數據庫中的數據項 268
12.1.7 刪除數據項 270
12.1.8 將數據庫存儲在正確的地方 275
12.2 IndexedDB 276
12.2.1 在IndexedDB中創建倉庫 277
12.2.2 從IndexedDB獲取數據 278
12.2.3 向IndexedDB寫入數據 279
12.2.4 將數據庫操作連接到UI界面 282
12.3 本章小結 284
3章 使用Spectron測試應用 285
13.1 介紹Spectron 287
13.2 使用Spectron和WebdriverIO 289
13.3 設置Spectron和測試運行器 290
13.4 使用Spectron編寫異步測試 292
13.4.1 等待窗口加載 293
13.4.2 測試Electron Browser Window API 294
13.4.3 使用Spectron遍歷和測試DOM 294
13.4.4 使用Spectron控制Electron API 297
13.5 本章小結 298
第Ⅲ部分 部署Electron應用
4章 構建並部署應用 301
14.1 介紹Electron Packager 302
14.1.1 設置Electron Packager 302
14.1.2 配置輸出目錄 304
14.1.3 配置應用的名稱和版本 304
14.1.4 更新應用圖標 305
14.1.5 針對多個操作繫統進行構建 306
14.2 使用asar檔案文件 307
14.3 Electron Forge 310
14.3.1 將一個Electron應用導入Electron Forge 311
14.3.2 使用Electron Forge構建應用 312
14.4 本章小結 313
5章 發布和更新應用 315
15.1 收集崩潰報告 315
15.1.1 設置崩潰報告 316
15.1.2 設置一臺接收崩潰報告的服務器 319
15.1.3 報告未捕獲異常 322
15.2 應用簽名 324
15.2.1 簽署macOS應用 325
15.2.2 在Windows繫統中創建安裝程序和進行代碼簽名 328
15.3 自動更新應用 331
15.3.1 在Electron中設置自動升級 332
15.3.2 搭建一臺自動更新服務器 334
15.4 本章小結 337
6章 通過Mac App Store分發應用 339
16.1 將應用提交到Mac App Store 339
16.1.1 簽署應用 340
16.1.2 向Mac App Store注冊應用 345
16.1.3 將應用添加到iTunes Connect 346
16.1.4 為Mac App Store打包應用 348
16.1.5 配置應用類別 352
16.1.6 注冊應用以打開一種文件類型 352
16.2 驗證和上傳應用 354
16.3 收尾事項 355
16.4 本章小結 355
附錄 Fire Sale和Clipmaster 9000的源代碼 357
內容簡介
如果能夠使用Web開發技能創建桌面應用,豈不是美事一樁?Electron正是一個用以實現此類需求的框架。不管是在哪個操作繫統上,Electron都能讓我們使用JavaScript和Node創建出簡潔、時髦的桌面應用。在基於Electron創建工具、遊戲和軟件的過程中,我們可以充分感受到Electron的快捷、實用和趣味性。
《Electron跨平臺開發實戰》講述如何使用JavaScript、Node和Electron框架創建跨平臺應用。在創建一個讀取和渲染Markdown文件的文本編輯器應用的過程中,讀者將學會像一名桌面開發者那樣去思考。
《Electron跨平臺開發實戰/Web開發經典叢書》還講解如何為應用添加各種與操作繫統有關的功能,包括訪問文件繫統、定制菜單和訪問繫統剪貼板,以及如何使用Chromium的工具分發已完工的產品。
此外,《Electr......
(美)史蒂文·金尼(Steve Kinney) 著 塗曙光 譯