Electron跨平臺開發實戰(簡體書)
- 系列名:Web開發經典叢書
- ISBN13:9787302534891
- 出版社:清華大學出版社(大陸)
- 作者:(美)史蒂文‧金尼; 涂曙光
- 裝訂/頁數:平裝/392頁
- 規格:29cm*21cm (高/寬)
- 版次:一版
- 出版日:2019/09/14
商品簡介
名人/編輯推薦
《Electron跨平臺開發實戰》講述如何使用JavaScript、Node和Electron框架創建跨平臺應用。在創建一個讀取和渲染Markdown文件的文本編輯器應用的過程中,讀者將學會像一名桌面開發者那樣去思考。本書還講解如何為應用添加各種與操作系統有關的功能,包括訪問文件系統、定制菜單和訪問系統剪貼板,以及如何使用Chromium的工具分發已完工的產品。此外,《Electron跨平臺開發實戰》還介紹數據存儲、性能優化和自動化測試等主題。
目次
第Ⅰ部分 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
主題書展
更多主題書展
更多書展本週66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。