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来获取当前获得焦点的 frame。 - 修复了
WebContents.opener以指定潜在的null类型。 #45667 - 将
ffmpeg.dll添加到延迟加载配置。 #46173 (同样适用于 34、35) - 添加了
nativeTheme.shouldUseDarkColorsForSystemIntegratedUI以区分系统和应用程序主题。 #46598 (同样适用于 35) - 为
webRequest过滤器添加了excludeUrls,并弃用了在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
可以使用 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 | 38.x.y |
| 35.x.y | 36.x.y | 37.x.y |
| 34.x.y | 35.x.y | 36.x.y |
接下来是什么
短期内,您可以预期团队将继续专注于跟进构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。
您可以在 此处 找到 Electron 的公共时间线。
有关未来变更的更多信息,请参见 计划中的破坏性变更 页面。
