跳至主要內容

Electron 2.0.0

·5 分鐘閱讀

經過四個多月的開發、八個 Beta 版本以及來自許多應用程式分階段推出的全球測試後,現在可以從 electronjs.org 取得 Electron 2.0.0 的版本。


發佈流程

從 2.0.0 開始,Electron 的發佈將遵循語意化版本。這表示主要版本將更頻繁地跳號,並且通常是對 Chromium 的重大更新。修補程式版本應該會更穩定,因為它們將僅包含高優先級的錯誤修復。

Electron 2.0.0 也代表在主要版本發佈之前,Electron 的穩定方式有所改進。幾個大型 Electron 應用程式已在分階段推出中包含 2.0.0 Beta 版本,為 Beta 系列提供了 Electron 前所未有的最佳回饋迴圈。

變更/新功能

  • 對 Electron 工具鏈的幾個重要部分進行了重大更新,包括 Chrome 61、Node 8.9.3、V8 6.1.534.41、Linux 上的 GTK+ 3、更新的拼寫檢查器和 Squirrel。
  • 現在 MacOS 上支援應用程式內購買#11292
  • 用於載入檔案的新 API。#11565
  • 用於啟用/停用視窗的新 API。#11832
  • 新的 API app.setLocale()。#11469
  • 新增了對記錄 IPC 訊息的支援。#11880
  • 新的選單事件。#11754
  • shutdown 事件新增至 powerMonitor。#11417
  • 新增 affinity 選項,用於將多個 BrowserWindow 收集到單一進程中。#11501
  • 新增了讓 saveDialog 列出可用擴充功能的能力。#11873
  • 支援其他通知動作#11647
  • 能夠設定 macOS 通知關閉按鈕標題。#11654
  • 新增選單的條件判斷。popup(window, callback)
  • 觸控列項目中的記憶體改善。#12527
  • 改善的安全性建議檢查清單。
  • 新增應用程式範圍的安全性範圍書籤。#11711
  • 新增在渲染器進程中設定任意引數的能力。#11850
  • 為格式選擇器新增輔助視圖。#11873
  • 修正了網路委派競爭條件。#12053
  • 在 Linux 上停止支援 mips64el 架構。Electron 需要 C++14 工具鏈,該工具鏈在發佈時不適用於該架構。我們希望將來能夠重新新增支援。

重大 API 變更

  • 已移除已棄用的 API,包括
    • 已變更 menu.popup 簽名。#11968
    • 已移除已棄用的 crashReporter.setExtraParameter#11972
    • 已移除已棄用的 webContents.setZoomLevelLimitswebFrame.setZoomLevelLimits#11974
    • 已移除已棄用的 clipboard 方法。#11973
    • 已移除對 tray.setHighlightMode 的布林值參數的支援。#11981

錯誤修正

  • 已變更以確保 webContents.isOffscreen() 始終可用。#12531
  • 修正了當 DevTools 取消停靠並聚焦時的 BrowserWindow.getFocusedWindow()#12554
  • 修正了如果預載路徑包含特殊字元,則預載無法在沙箱渲染中載入的問題。#12643
  • 根據文件更正 allowRunningInsecureContent 的預設值。#12629
  • 修正了 nativeImage 的透明度。#12683
  • 修正了 Menu.buildFromTemplate 的問題。#12703
  • 確認 menu.popup 選項是物件。#12330
  • 移除了新進程建立和內容釋放之間的競爭條件。#12361
  • 在變更 BrowserView 時更新可拖曳區域。#12370
  • 修正了聚焦時選單列切換 Alt 鍵偵測。#12235
  • 修正了網頁檢視中的不正確警告。#12236
  • 修正了從父視窗繼承「顯示」選項的問題。#122444
  • 確保 getLastCrashReport() 實際上是最後一份損毀報告。#12255
  • 修正了網路共用路徑上的 require 問題。#12287
  • 修正了上下文選單點擊回呼。#12170
  • 修正了彈出選單位置。#12181
  • 改進 libuv 迴圈清理。#11465
  • 修正透明色彩的 hexColorDWORDToRGBA#11557
  • 修正使用 getWebPreferences API 時的空指標反向引用。#12245
  • 修正選單委派中的循環參考。#11967
  • 修正 net.request 的協定篩選。#11657
  • WebFrame.setVisualZoomLevelLimits 現在會設定 user-agent 縮放限制。#12510
  • 為 webview 選項設定適當的預設值。#12292
  • 改進 vibrancy 支援。#12157 #12171 #11886
  • 修正單例測試中的時序問題。
  • 修正 NotifierSupportsActions() 中損壞的生產快取。
  • 讓 MenuItem 角色與 camelCase 相容。#11532
  • 改進觸控列更新。#11812, #11761
  • 移除多餘的選單分隔符。#11827
  • 修正藍牙選擇器錯誤。關閉 #11399
  • 修正 macOS 全螢幕切換選單項目標籤。#11633
  • 改進當視窗停用時的工具提示隱藏。#11644
  • 遷移已棄用的 web-view 方法。#11798
  • 修正從 browserview 開啟的視窗關閉問題。#11799
  • 修正藍牙選擇器錯誤。#11492
  • 更新為使用工作排程器來處理 app.getFileIcon API。#11595
  • 變更為即使在離螢幕渲染時也觸發 console-message 事件。#11921
  • 修正使用 WebContents.downloadURL 從自訂協定下載的問題。#11804
  • 修正當 devtools 分離時,透明視窗失去透明度的問題。#11956
  • 修正 Electron 應用程式取消重新啟動或關機的問題。#11625

macOS

  • 修正重複使用觸控列項目時的事件洩漏。#12624
  • 修正深色模式下的系統匣反白顯示。#12398
  • 修正非同步對話方塊阻擋主程序的問題。#12407
  • 修正 setTitle 系統匣崩潰的問題。#12356
  • 修正設定 dock 選單時發生的崩潰。#12087

Linux

  • 更好的 Linux 桌面通知。#12229 #12216 #11965 #11980
  • 更好的 GTK+ 選單主題支援。#12331
  • 在 Linux 上正常結束。#12139
  • 使用應用程式名稱作為系統匣圖示的預設工具提示。#12393

Windows

  • 新增 Visual Studio 2017 支援。#11656
  • 修正將例外狀況傳遞給系統崩潰處理常式的問題。#12259
  • 修正從最小化視窗隱藏工具提示的問題。#11644
  • 修正 desktopCapturer 以擷取正確的螢幕。#11664
  • 修正具有透明度的 disableHardwareAcceleration#11704

下一步

Electron 團隊正努力支援更新版本的 Chromium、Node 和 v8。預計 3.0.0-beta.1 即將推出!