跳到主要內容

Electron 12.0.0

·閱讀時間 5 分鐘

Electron 12.0.0 已發布!本次更新包含 Chromium 89、V8 8.9 和 Node.js 14.16 的升級。我們針對 remote 模組進行了變更,contextIsolation 採用了新的預設值,新增了 webFrameMain API,並進行了整體效能改善。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 12.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的 發行版本網站 下載。請繼續閱讀以了解本次發行版本的詳細資訊,並歡迎分享您的任何意見回饋!

重點變更

堆疊變更

重點功能

  • ContextBridge exposeInMainWorld 方法現在可以公開非物件 API。 #26834
  • 從 Node 12 升級至 Node 14。 #23249
  • 新增 webFrameMain API,用於從主程序存取 WebContents 實例的子框架。 #25464
  • contextIsolationworldSafeExecuteJavaScript 的預設值現在為 true#27949 #27502

請參閱 12.0.0 發行說明,以取得完整的新功能和變更列表。

重大變更

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

API 變更

  • 新增 webFrameMain API:webFrameMain 模組可用於在現有的 WebContents 實例中查找 frame。這是現有 webFrame API 在主程序中的對應功能。關於此新 API 的更多資訊,請參閱 此處 和我們的 文件
  • app API 變更
    • 將非本地化的 serviceName 新增至 'child-process-gone' / app.getAppMetrics()#25975
    • 新增 app.runningUnderRosettaTranslation 屬性,用於偵測是否在 Apple silicon 上於 Rosetta 下執行。 #26444
    • exitCode 新增至 render-process-gone 詳細資訊 (app & webContents)。 #27677
  • BrowserWindow API 變更
    • 新增 BrowserWindow.isTabletMode() API。 #25209
    • resized (Windows/macOS) 和 moved (Windows) 事件新增至 BrowserWindow#26216
    • 新增 system-context-menu 事件,以允許防止和覆寫系統內容選單。 #25795
    • 新增 win.setTopBrowserView(),以便可以提升 BrowserView#27713
    • 新增 webPreferences.preferredSizeMode,以允許根據文件最小尺寸調整視窗大小。 #25874
  • contextBridge API 變更
    • 允許 ContextBridge exposeInMainWorld 方法公開非物件 API。 #26834
  • display API 變更
    • displayFrequency 屬性新增至 Display 物件,以允許取得關於 Windows 上螢幕更新頻率的資訊。 #26472
  • extensions API 變更
    • 新增對某些 chrome.management API 的支援。 #25098
  • MenuItem API 變更
    • 新增對顯示 macOS 分享選單的支援。 #25629
  • net API 變更
    • net.request() 新增 credentials 選項。 #25284
    • 新增 net.online 以偵測目前是否有網路連線。 #21004
  • powerMonitor API 變更
    • 新增 powerMonitor.onBatteryPower#26494
    • 將快速使用者切換事件新增至 macOS 上的 powerMonitor。 #25321
  • session API 變更
    • allowFileAccess 選項新增至 ses.loadExtension() API。 #27702
    • session.setPermissionRequestHandler 新增 display-capture API。 #27696
    • disabledCipherSuites 選項新增至 session.setSSLConfig#25818
    • extension-loadedextension-unloadedextension-ready 事件新增至 session#25385
    • 新增 session.setSSLConfig() 以允許設定 SSL。 #25461
    • session.setProxy() 中新增對明確指定 directauto_detectsystem 模式的支援。 #24937
    • 新增 Serial API 支援。 #25237
    • 新增 API 以啟用/停用拼字檢查器。 #26276
  • shell API 變更
    • 新增非同步 shell.trashItem() API,取代同步 shell.moveItemToTrash()#25114
  • webContents API 變更
    • 在 console 中新增小型主控台提示,以協助偵錯渲染器崩潰問題。 #25317
    • framewebContents 屬性新增至 webRequest 處理常式中的詳細資訊物件。 #27334
    • 新增 webContents.forcefullyCrashRenderer() 以強制終止渲染器程序,以協助復原無回應的渲染器。 #25580
    • 為渲染器建立的子視窗新增 setWindowOpenHandler API,並棄用 new-window 事件。 #24517
  • webFrame API 變更
    • 將拼字檢查 API 新增至渲染器。 #25060

已移除/已棄用變更

以下 API 已移除或現在已棄用

  • 已棄用 remote 模組。它已被 @electron/remote 取代。 #25293
  • 已移除已棄用的 crashReporter API。 #26709
  • 從封裝應用程式的預設「說明」選單中移除 Electron 網站的連結。 #25831

9.x.y 版本終止支援

根據專案的 支援政策,Electron 9.x.y 版本已終止支援。建議開發人員和應用程式升級至較新版本的 Electron。

下一步

短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發進度。儘管我們謹慎不對發布日期做出承諾,但我們的計畫是約每季發布包含這些元件新版本的 Electron 主要版本。暫定的 13.0.0 時程表 列出了 Electron 13.0 開發生命週期的關鍵日期。此外,請參閱我們的版本控制文件,以取得關於 Electron 版本控制的更詳細資訊。

如需了解即將發行的 Electron 版本中計畫的重大變更,請參閱我們的 計畫重大變更文件