-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Electron跨平臺開發實戰

( 簡體 字)
作者:[美]史蒂文·金尼(Steve Kinney)著,涂曙光 譯類別:1. -> 程式設計 -> 搜索引擎
譯者:
出版社:清華大學出版社Electron跨平臺開發實戰 3dWoo書號: 51775
詢問書籍請說出此書號!

缺書
NT售價: 490

出版日:9/1/2019
頁數:392
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302534891
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

《Electron跨平臺開發實戰》的主要目標是幫助你快速著手創建Electron應用。通過將各種基礎概念體現于實踐代碼之中,我們可以更好地學習這些概念。這《Electron跨平臺開發實戰》不僅介紹Electron的基礎知識,還會提供創建新應用的靈感和點子。
《Electron跨平臺開發實戰》讀者對象
《Electron跨平臺開發實戰》適用于這樣一些受眾:想要創建功能遠遠超出瀏覽器功能的桌面應用的人;想要為自己創建一款滿足個人需要的桌面應用,但又不希望重新學習一門新的編程語言或框架的人;想要突破自身能力,使用同一份代碼創建運行于多個操作系統之上應用的小型團隊。而在筆者的內心深處,《Electron跨平臺開發實戰》既適用于想要為命令行應用創建GUI界面的人,也適用于希望無須在計算機上安裝Node.js即可運行應用程序或工具的人。
《Electron跨平臺開發實戰》假設讀者已經熟練掌握了JavaScript,但是由于讀者的技術背景各不相同,有些讀者可能只對某個領域比較有經驗,所以如果書中講到了讀者可能不熟悉的Web或Node.js知識點,我會對它們進行講解。
《Electron跨平臺開發實戰》的組織結構:路線圖
《Electron跨平臺開發實戰》分為16章。各章的內容都前后銜接、循序漸進。如果只想了解如何在你的應用中實現某個特定功能,也可以直接跳到相關章節進行閱讀。
第1章將講述Electron是什么。我們可以看到一些Electron能夠做到,而瀏覽器和Node.js無法獨自做到的事情。
第2章將開始創建一個簡單的Electron應用。該章的目標是通過親自動手實踐,讓讀者了解使用Electron創建一個應用是多么容易。
第3章將介紹《Electron跨平臺開發實戰》中的一個主要應用—— Fire Sale,這是一個讓用戶可以打開文件系統中的Markdown文件并對它們進行編輯的應用。
第4章將介紹如何使用原生系統對話框和警示框,用戶可以使用對話框從文件系統中選擇一個文件并在Fire Sale中編輯它。Fire Sale應用會模糊DOM與Node標準庫之間的界線,協調兩者以實現對話框功能。
第5章將向應用添加多窗口支持,多窗口會引出一系列單瀏覽器窗口應用和無窗口Node.js應用不會遇到的問題。
第6章將引入更多的原生操作系統集成功能。我們將把Fire Sale中打開的文檔添加到操作系統的最近打開文件列表中,創建一個檢查當前打開的文件是否已被其他應用修改的監聽器,并根據當前文件是否有未保存的更改,更新窗口標題欄中顯示的文本。
第7章將探討如何創建原生應用菜單和上下文菜單,前者被一個應用的所有窗口共享,后者會在用戶右擊鼠標時彈出。
第8章將講解如何基于應用的狀態更新應用菜單,包括啟用或禁用指定的菜單項。
第9章將創建一種駐留在macOS的菜單欄中或Windows的系統托盤區域的新型應用。Web應用是無法將自己駐留在這些區域的。你在該章會創建Clipmaster應用,這是一個精簡的剪貼板管理器,可以從系統剪貼板讀取和寫入內容,響應全局快捷鍵,并在完成操作時向用戶顯示通知。
第10章將使用第三方庫,創建一個像Fire Sale那樣有UI界面的新版Clipmaster應用。這個新版本的名稱是Clipmaster 9000,它可以訪問GitHub的Gist API,并且可以通過快捷鍵把保存的剪貼項發布到另一個Web系統。
之前我們一直在使用標準JavaScript語言實現Electron應用的功能。在第11章,將展示如何在應用中使用Babel、TypeScript和CoffeeScript等可轉譯為JavaScript的語言,以及Sass和Less等可轉譯為CSS的語言。你在該章會使用React創建一個名為Jetsetter的旅行打包列表應用。
第12章將介紹如何將數據保存到數據庫,將演示在客戶端代碼中,如何使用SQLite數據庫實現數據讀寫操作。除了SQLite之外,還會演示使用基于瀏覽器的IndexedDB數據庫。
第13章將介紹Spectron這個測試工具,它讓開發者可以為Electron應用編寫Selenium測試代碼。我們將為前面章節創建的Clipmaster 9000應用編寫一組測試。
第14章將介紹對應用進行打包的工具。使用工具打包應用之后,可以將它們分發給不想僅通過命令行啟動應用的用戶。其實不光是用戶,很多開發者也不太喜歡使用命令行啟動應用。
第15章涵蓋如何為macOS應用簽名,如何創建Windows安裝程序,以及如何創建用于收集錯誤日志和崩潰報告的簡單服務器。
第16章將講解如何把應用發布到Mac App Store。如果你更喜歡自己分發應用,就不必把應用發布到Mac App Store。但是,如果你確實想那樣做但又對流程不熟悉,那么該章對你會非常有幫助。
關于代碼
《Electron跨平臺開發實戰》包含許多源代碼示例,一些以單獨的代碼清單形式出現,另一些則直接插入正文。有時,代碼會以粗體標出,以表示它們相對于當前章節的前面部分已經發生變化,這通常是由于向原有代碼添加新功能導致的。
在許多場景中,原始代碼都被重新格式化,我們做了折行處理,并重新規劃了縮進,以滿足排版需求。在極少的情況下,即使重新格式化代碼也仍然不夠,所以會用到行連續符號(?),表示書頁上的兩行實際上是連續的單行代碼。此外,使用文本對代碼進行說明時,通常會從代碼清單中將注釋刪除。許多代碼清單都帶有額外的文字標注,以突出代碼里面重要的概念。
內容簡介:

為macOS、Windows和Linux平臺創建應用
? 使用原生操作系統API
? 使用諸如React等第三方框架
? 將應用部署到Mac App Store
讀者需要具備一定的JavaScript和Node技能,但無須具有任何桌面應用開發經驗。
目錄:

第Ⅰ部分Electron入門知識
第1章介紹Electron3
1.1什么是Electron3
1.1.1什么是ChromiumContentModule5
1.1.2什么是Node.js6
1.2哪些人在使用Electron6
1.3閱讀本書之前,需要知道些什么8
1.4為何要使用Electron8
1.4.1重用現有技能10
1.4.2訪問原生操作系統API10
1.4.3更高運行權限,更少功能限制11
1.4.4在瀏覽器環境中使用Node的功能13
1.4.5離線優先14
1.5Electron的工作原理14
1.5.1主進程15
1.5.2渲染器進程15
1.6對比Electron與NW.js16
1.7本章小結17
第2章創建第一個Electron應用19
2.1創建一個書簽列表應用20
2.1.1組織Electron應用的結構21
2.1.2package.json22
2.1.3在項目中下載并安裝Electron23
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使用WebStorageAPI存儲從響應中得到的信息38
2.4.4顯示請求的結果39
2.4.5預防錯誤43
2.4.6一個不期而至的bug45
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使用VisualStudioCode調試主進程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界面上的SaveFile和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.1macOS系統的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開始創建Clipmaster184
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
第10章在應用中使用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
第11章使用轉譯器和框架231
11.1介紹electron-compile233
11.2打造應用的基礎234
11.3在React中創建UI界面241
11.3.1Application組件241
11.3.2顯示物品列表244
11.4添加新的物品248
11.5實時重新加載與模塊熱加載252
11.5.1啟用實時重新加載252
11.5.2實現模塊熱加載253
11.6本章小結256
第12章保存用戶數據以及使用Node.js原生模塊259
12.1在SQLite數據庫中存儲數據260
12.1.1使用electron-rebuild確保編譯出正確的版本261
12.1.2使用SQLite和Knex.js262
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.2IndexedDB276
12.2.1在IndexedDB中創建倉庫277
12.2.2從IndexedDB獲取數據278
12.2.3向IndexedDB寫入數據279
12.2.4將數據庫操作連接到UI界面282
12.3本章小結284
第13章使用Spectron測試應用285
13.1介紹Spectron287
13.2使用Spectron和WebdriverIO289
13.3設置Spectron和測試運行器290
13.4使用Spectron編寫異步測試292
13.4.1等待窗口加載293
13.4.2測試ElectronBrowserWindowAPI294
13.4.3使用Spectron遍歷和測試DOM294
13.4.4使用Spectron控制ElectronAPI297
13.5本章小結298
第Ⅲ部分部署Electron應用
第14章構建并部署應用301
14.1介紹ElectronPackager302
14.1.1設置ElectronPackager302
14.1.2配置輸出目錄304
14.1.3配置應用的名稱和版本304
14.1.4更新應用圖標305
14.1.5針對多個操作系統進行構建306
14.2使用asar檔案文件307
14.3ElectronForge310
14.3.1將一個Electron應用導入ElectronForge311
14.3.2使用ElectronForge構建應用312
14.4本章小結313
第15章發布和更新應用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
第16章通過MacAppStore分發應用339
16.1將應用提交到MacAppStore339
16.1.1簽署應用340
16.1.2向MacAppStore注冊應用345
16.1.3將應用添加到iTunesConnect346
16.1.4為MacAppStore打包應用348
16.1.5配置應用類別352
16.1.6注冊應用以打開一種文件類型352
16.2驗證和上傳應用354
16.3收尾事項355
16.4本章小結355
附錄FireSale和Clipmaster9000的源代碼357
序: