跳到主要內容

Electron 8.0.0

·閱讀時間 6 分鐘

Electron 8.0.0 已發佈! 它包含 Chromium 80、V8 8.0 和 Node.js 12.13.0 的升級。 我們新增了 Chrome 的內建拼字檢查器,以及更多功能!


Electron 團隊很高興宣布 Electron 8.0.0 的發佈! 您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的發佈網站下載它。 此版本包含升級、修復和新功能。 我們迫不及待想看看您使用它們建構出什麼! 繼續閱讀以了解此版本的詳細資訊,並請分享您有的任何意見反應!

重要變更

堆疊變更

重點功能

  • 實作了 Chrome 內建拼字檢查器功能的使用。 如需更多詳細資訊,請參閱 #20692#21266
  • IPC 通訊現在使用 v8 的結構化複製演算法。 這比現有的邏輯更快、功能更強大且更不容易產生意外,並且為大型緩衝區和複雜物件帶來 2 倍的效能提升。 小型訊息的延遲時間沒有受到顯著影響。 如需更多詳細資訊,請參閱 #20214

如需新功能和變更的完整清單,請參閱 8.0.0 版本說明

重大變更

  • 在內容感知模組的棄用警告中顯示模組名稱。 #21952
    • 這是為了未來要求在渲染器程序中載入的原生 Node 模組必須是 N-API內容感知 所做的持續工作。 完整資訊和建議時程表在 這個問題 中詳細說明。
  • 透過 IPC 傳送的值現在使用結構化複製演算法序列化。 #20214
  • 目前已停用離螢幕渲染,因為沒有維護人員來處理此功能。 它在 Chromium 升級期間損壞,隨後被停用。 #20772

有關這些變更和未來變更的更多資訊,請參閱計劃中的重大變更頁面。

API 變更

  • app API 變更
    • 新增 app.getApplicationNameForProtocol(url)#20399
    • 新增 Windows 上對 app.showAboutPanel()app.setAboutPanelOptions(options) 的支援。 #19420
  • BrowserWindow API 變更
    • 更新了文件,以說明 BrowserWindow 選項 hasShadow 在所有平台上都可用 #20038
    • 新增 trafficLightPosition 選項到 BrowserWindow 選項,以允許自訂交通號誌按鈕的位置。 #21781
    • 為 BrowserWindow 新增 accessibleTitle 選項,以設定無障礙視窗標題 #19698
    • BrowserWindow.fromWebContents() 現在可以傳回 null #19983
    • 新增 BrowserWindow.getMediaSourceId()BrowserWindow.moveAbove(mediaSourceId)#18926
    • 新增 macOS 上對 will-move 事件的支援。 #19641
  • 記錄了先前未記錄的 crashReporter.getCrashesDirectory()#20417
  • dialog API 變更
    • dialog.showOpenDialogdialog.showOpenDialogSync 新增 dontAddToRecent 屬性,以防止文件在 Windows 開啟對話方塊中被新增到最近的文件。 #19669
    • dialog.showSaveDialogdialog.showSaveDialogSync 新增屬性自訂。 #19672
  • Notification API 變更
    • 新增 timeoutType 選項,以允許 Linux/Windows 使用者設定通知逾時的類型。 #20153
    • 新增 urgency 選項以設定 Linux 通知的緊急程度。 #20152
  • session API 變更
    • 更新了 session.setProxy(config)session.setCertificateVerifyProc(proc) 的文件,以說明選用的選項。 #19604
    • 新增 session.downloadURL(url) 以允許在沒有 BrowserWindow 的情況下觸發下載。 #19889
    • 透過 session.preconnect(options)preconnect 事件新增對 HTTP 預先連線資源提示的支援。 #18671
    • 新增 session.addWordToSpellCheckerDictionary 以允許在字典中使用自訂字詞 #21297
  • 在 macOS 上,為 shell.moveItemToTrash(fullPath[, deleteOnFail]) 新增了選項,以指定 moveItemToTrash 失敗時的處理方式。 #19700
  • systemPreferences API 變更
    • 更新了 macOS 的 systemPreferences.getColor(color) 文件。 #20611
    • systemPreferences.getMediaAccessStatus() 新增了 screen 媒體類型。 #20764
  • 新增 nativeTheme.themeSource,允許應用程式覆寫 Chromium 和作業系統的主題選擇。 #19960
  • TouchBar API 變更
    • TouchBarButtonTouchBarLabel 新增了 accessibilityLabel 屬性,以改善 TouchBarButton/TouchBarLabel 的可存取性。 #20454
    • 更新了 TouchBar 相關文件 #19444
  • tray API 變更
    • tray.displayBalloon() 新增了新的選項:iconTypelargeIconnoSoundrespectQuietTime#19544
    • 新增了 tray.removeBalloon(),可以移除已經顯示的氣泡通知。 #19547
    • 新增了 tray.focus(),可以將焦點返回到工作列通知區域。 feat: add tray.focus() #19548
  • webContents API 變更
    • 新增了 contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]),以便在 webContents API 上公開 executeJavaScriptInIsolatedWorld。 #21190
    • 新增了用於擷取隱藏 webContents 的方法。 #21679
    • webContents.print([options], [callback]) 新增了選項,以啟用自訂列印頁首和頁尾。 #19688
    • 新增了透過 webContents.getAllSharedWorkers()webContents.inspectSharedWorkerById(workerId) 檢視特定共享 Worker 的功能。 #20389
    • 在 WebContents.printToPDF() 中新增了對 fitToPageEnabledscaleFactor 選項的支援。 #20436
  • 更新了 webview.printToPDF 文件,指出傳回類型現在為 Uint8Array。 #20505

已棄用的 API

以下 API 現在已棄用

  • 在下一個主要版本中移除之前,棄用了 BrowserWindow.setVisibleOnAllWorkspaces 中無作用的 visibleOnFullScreen 選項。 #21732
  • 針對 macOS,棄用了 systemPreferences.getColor(color) 上的 alternate-selected-control-text#20611
  • 由於 Chromium 移除了此功能,因此棄用了 webContentswebFrame<webview> Tag 上的 setLayoutZoomLevelLimits#21296
  • app.allowRendererProcessReuse 的預設值 false 現在已棄用。 #21287
  • 棄用了 <webview>.getWebContents(),因為它依賴於 remote 模組。 #20726

5.x.y 的支援終止

根據專案的支援政策,Electron 5.x.y 已終止支援。我們鼓勵開發人員和應用程式升級到較新版本的 Electron。

應用程式回饋計畫

我們持續使用我們的應用程式回饋計畫進行測試。參與此計畫的專案會在他們的應用程式上測試 Electron beta 版本;作為回報,他們發現的新錯誤會優先在穩定版本中修復。如果您想參與或了解更多資訊,請查看我們關於該計畫的部落格文章

接下來的計畫

短期內,您可以預期團隊會繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。雖然我們謹慎避免承諾發布日期,但我們的計畫是約每季發布帶有這些元件新版本的 Electron 主要版本。 暫定的 9.0.0 時程表規劃了 Electron 9 開發生命週期中的關鍵日期。此外,請參閱我們的版本控制文件,以取得有關 Electron 版本控制的更多詳細資訊。

有關 Electron 即將推出的版本中計劃的重大變更的資訊,請參閱我們的計劃重大變更文件

棄用 remote 模組(從 Electron 9 開始)

由於嚴重的安全性問題,我們正在開始計劃棄用remote 模組,從 Electron 9 開始。您可以閱讀並關注此議題,其中詳細說明了我們這樣做的原因,並包含建議的棄用時程表。