Electron 30.0.0
Electron 30.0.0 已發布!它包含 Chromium 124.0.6367.49
、V8 12.4
和 Node.js 20.11.1
的升級。
Electron 團隊很高興宣布 Electron 30.0.0 的發布!您可以使用 npm 透過 npm install electron@latest
安裝它,或從我們的版本網站下載它。繼續閱讀以了解有關此版本的詳細資訊。
如果您有任何意見回饋,請在 Twitter 或 Mastodon 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 issue tracker 中回報。
重大變更
重點
- Windows 上現在支援 ASAR 完整性熔斷器 (#40504)
- 如果未正確設定,已啟用 ASAR 完整性的現有應用程式可能無法在 Windows 上運作。使用 Electron 打包工具的應用程式應升級至
@electron/packager@18.3.1
或@electron/forge@7.4.0
。 - 請查看我們的 ASAR 完整性教學以取得更多資訊。
- 如果未正確設定,已啟用 ASAR 完整性的現有應用程式可能無法在 Windows 上運作。使用 Electron 打包工具的應用程式應升級至
- 新增
WebContentsView
和BaseWindow
主要程序模組,棄用並取代BrowserView
(#35658)。在這篇部落格文章中,深入了解如何從BrowserView
移轉至WebContentsView
。BrowserView
現在是WebContentsView
的墊片,並且已移除舊的實作。- 請參閱我們的 Web Embeds 文件,以比較新的
WebContentsView
API 與其他類似的 API。
- 實作了對 File System API 的支援 (#41827)
堆疊變更
- Chromium
124.0.6367.49
- Chrome 124 和 DevTools 124 的新功能
- Chrome 123 和 DevTools 123 的新功能
- Node
20.11.1
- V8
12.4
Electron 30 將 Chromium 從 122.0.6261.39
升級到 124.0.6367.49
,Node 從 20.9.0
升級到 20.11.1
,V8 從 12.2
升級到 12.4
。
新功能
- 為 webview 新增了
transparent
webpreference。(#40301) - 在 webContents API 上新增了新的執行個體屬性
navigationHistory
以及navigationHistory.getEntryAtIndex
方法,使應用程式能夠擷取瀏覽歷程記錄中任何導覽項目的 URL 和標題。(#41662) - 新增了新的
BrowserWindow.isOccluded()
方法,以允許應用程式檢查遮蔽狀態。(#38982) - 為從公用程式程序使用
net
模組發出的請求新增了 Proxy 設定支援。(#41417) - 新增了對
navigator.serial
中依服務類別 ID 請求藍牙連接埠的支援。(#41734) - 新增了對 Node.js
NODE_EXTRA_CA_CERTS
CLI 旗標的支援。(#41822)
重大變更
行為已變更:跨來源 iframe 現在使用權限原則來存取功能
跨來源 iframe 現在必須透過 allow
屬性指定可供給定 iframe
使用的功能,才能存取這些功能。
請參閱 文件以取得更多資訊。
已移除:--disable-color-correct-rendering
命令列開關
此開關從未正式記錄在文件中,但此處仍註記其已移除。Chromium 本身現在對色彩空間有更好的支援,因此不應再需要此旗標。
行為已變更:macOS 上的 BrowserView.setAutoResize
行為
在 Electron 30 中,BrowserView 現在是新的 WebContentsView API 的包裝函式。
先前,BrowserView
API 的 setAutoResize
函式由 macOS 上的 autoresizing 以及 Windows 和 Linux 上的自訂演算法支援。對於簡單的用例,例如使 BrowserView 填滿整個視窗,這兩種方法的行為是相同的。但是,在更進階的情況下,BrowserView 在 macOS 上的自動調整大小會與在其他平台上不同,因為 Windows 和 Linux 的自訂調整大小演算法與 macOS 的自動調整大小 API 的行為並不完全匹配。現在,自動調整大小行為已在所有平台上標準化。
如果您的應用程式使用 BrowserView.setAutoResize
執行比使 BrowserView 填滿整個視窗更複雜的操作,則您可能已經有自訂邏輯來處理 macOS 上行為的這種差異。如果是這樣,則在 Electron 30 中將不再需要該邏輯,因為自動調整大小行為是一致的。
已移除:WebContents
上 context-menu
的 params.inputFormType
屬性
已移除 WebContents
中 context-menu
事件中 params 物件的 inputFormType
屬性。請改用新的 formControlType
屬性。
已移除:process.getIOCounters()
Chromium 已移除對此資訊的存取權。
終止對 27.x.y 的支援
根據專案的支援政策,Electron 27.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。
E30 (24 年 4 月) | E31 (24 年 6 月) | E32 (24 年 8 月) |
---|---|---|
30.x.y | 31.x.y | 32.x.y |
29.x.y | 30.x.y | 31.x.y |
28.x.y | 29.x.y | 30.x.y |
下一步
在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件(包括 Chromium、Node 和 V8)的開發。
您可以在此處找到 Electron 的公開時程表。
有關未來變更的更多資訊,請參閱計畫的重大變更頁面。