Electron 36.0.0
Electron 36.0.0 已发布!它包含对 Chromium 136、V8 13.6 和 Node 22.14.0 的升级。
Electron 团队很高兴宣布 Electron 36.0.0 发布!您可以使用 npm 通过 npm install electron@latest
安装,或从我们的发布网站下载。继续阅读以了解此版本的详细信息。
如果您有任何反馈,请在Bluesky 或 Mastodon 上与我们分享,或加入我们的社区 Discord!错误和功能请求可在 Electron 的问题跟踪器中报告。
重要变更
写作工具支持
在 Electron 36 中,您可以在上下文菜单中启用 macOS 系统级功能,例如写作工具(拼写和语法)、自动填充和服务菜单项。为此,将 WebFrameMain 实例传递给 menu.popup()
的 frame
参数。
import { BrowserWindow, Menu, WebFrameMain } from 'electron';
const currentWindow = BrowserWindow.getFocusedWindow();
const focusedFrame = currentWindow.webContents.focusedFrame;
const menu = Menu.buildFromTemplate([{ label: 'Copy', role: 'copy' }]);
menu.popup({
window: currentWindow,
frame: focusedFrame,
});
技术栈变更
- Chromium
136.0.7103.48
- Node
22.14.0
- V8
13.6
Electron 36 将 Chromium 从 134.0.6998.23
升级到 136.0.7103.48
,将 V8 从 13.5
升级到 13.6
。
新特性和改进
- 添加了
BrowserWindow.isSnapped()
,用于指示给定窗口是否已通过 Windows Snap 排列。#46226 - 添加了
WebContents.focusedFrame
,用于获取焦点帧。 - 修复了
WebContents.opener
以指定可能的null
类型。#45667 - 添加了
ffmpeg.dll
到延迟加载配置。#46173 (也在 34, 35 中) - 添加了
nativeTheme.shouldUseDarkColorsForSystemIntegratedUI
,用于区分系统和应用主题。#46598 (也在 35 中) - 将
excludeUrls
添加到webRequest
过滤器中,并弃用了在urls
属性中使用空数组。#44692 (也在 35 中) - 通过
menu.popup
中的新frame
选项,在上下文菜单中添加了对自动填充、写作工具和服务等 macOS 级别菜单项的支持。#46350 - 添加了对 Linux 上
system-context-menu
的支持。#46399 - 改进了 Windows 上的 ASAR 完整性检查。#46537
- 在 macOS 上未请求缩略图时,改进了
desktopCapturer.getSources
的性能。#46251 (也在 34, 35 中) - 移除了使用共享纹理 OSR 时的 240 FPS 限制。#45669 (也在 35 中)
重大变更
已弃用:NativeImage.getBitmap()
NativeImage.getBitmap()
函数现已弃用,并被记录为 NativeImage.toBitmap()
的别名。这两个函数都返回位图的新分配副本,且功能上等同。
已弃用:session
上的扩展方法和事件
session.loadExtension
、session.removeExtension
、session.getExtension
、session.getAllExtensions
以及事件 extension-loaded
、extension-unloaded
和 extension-ready
都已移至新的 Extensions
对象,该对象可通过 session.extensions
实例属性访问。
已移除:session.clearStorageData(options)
中的 quota
类型 syncable
调用 session.clearStorageData(options)
时,不再支持 options.quota
类型 syncable
,因为它已从上游 Chromium 移除。
已弃用:session.clearStorageData(options)
中的 quota
属性
调用 Session.clearStorageData(options)
时,options.quota
属性已弃用。由于 syncable
类型已移除,仅剩一种类型 -- 'temporary'
-- 因此指定它是不必要的。
行为变更:在 GNOME 上运行时 GTK 4 为默认
上游变更后,在 GNOME 上运行时 GTK 4 现为默认。
在极少数情况下,这可能导致某些应用或配置出现错误,并显示以下消息
Gtk-ERROR **: 11:30:38.382: GTK 2/3 symbols detected. Using GTK 2/3 and GTK 4 in the same process is not supported
受影响的用户可以通过指定 gtk-version
命令行标志来解决此问题
$ electron --gtk-version=3 # or --gtk-version=2
受影响的用户可以通过指定 gtk-version
命令行标志来解决此问题
使用 app.commandLine.appendSwitch
函数也可以做到这一点。
行为变更:app.commandLine
app.commandLine
会将大写开关和参数转换为小写。
app.commandLine
仅用于处理 Chromium 开关(不区分大小写),通过 app.commandLine
传递的开关不会传递给任何子进程。
如果您使用 app.commandLine
来解析特定于应用的命令行参数,则应通过 process.argv
进行。
停止支持 33.x.y
根据项目的支持策略,Electron 33.x.y 已停止支持。建议开发者和应用升级到更高版本的 Electron。 | E36 (25年4月) | E37 (25年6月) |
---|---|---|
E38 (25年8月) | 36.x.y | 37.x.y |
35.x.y | E38 (25年8月) | 36.x.y |
34.x.y | 35.x.y | E38 (25年8月) |
展望未来
短期内,您可以期待团队将继续专注于跟进构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。
您可以在此处找到 Electron 的公开时间线。
关于未来变更的更多信息可在计划中的重大变更页面上找到。