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 的問題追蹤器中回報。
重大變更
重點
- 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
的 shim,且舊的實作已移除。- 請參閱我們的 Web Embeds 文件,以比較新的
WebContentsView
API 與其他類似的 API。
- 實作了對檔案系統 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 (2024 年 4 月) | E31 (2024 年 6 月) | E32 (2024 年 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 的公開時間軸。
有關未來變更的更多資訊,請參閱計畫中的重大變更頁面。