Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。
Electron v28.0.0 更新内容如下:
Stack Upgrades
Breaking Changes
BrowserWindow.setTrafficLightPosition()
和BrowserWindow.getTrafficLightPosition()
方法已被删除。#39479app.runningUnderRosettaTranslation()
方法已被删除。#39956ipcRenderer.sendTo()
方法已被删除。#39087scroll-touch-{begin,end,edge}
事件已被删除。#39814- 将
backgroundThrottling
设置为 false 将禁用BrowserWindow
对其显示的所有WebContents
的 frames throttling。#38924
Features
Additions
- 启用 ESM 支持。#37535
- 有关更多详细信息,参阅 ESM 文档。
UtilityProcess
API 现在支持 ESM entrypoints。#40047- 向
display
对象添加了多个属性,包括detected
、maximumCursorSize
和nativeOrigin
。#40554 - 添加了对 Linux 上环境变量
ELECTRON_OZONE_PLATFORM_HINT
的支持。#39792
除了在 Electron 本身中启用 ESM 支持之外,Electron Forge 还支持使用 ESM 来打包、构建和开发 Electron 应用程序。可以在 Forge v7.0.0 或更高版本中找到此支持:https://github.com/electron/forge/releases/tag/v7.0.0
- 添加了 API 以帮助应用程序知道何时避免半透明背景。# 39631
- 添加了
getWebRTCUDPPortRange
好setWebRTCUDPPortRange
API 来指定 WebRTC 的 UDP 端口范围。#39046 - 添加
keyboardLock
到ses.setPermissionRequestHandler(handler)
。# 40460 - 为 Windows 添加了
mouse-enter
和mouse-leave
Tray 事件。#40072 - 为
webContents.printToPDF()
添加了generateTaggedPDF
选项,以便生成带 tag(可访问)的 PDF。#39563 - 添加了一个
tabbingIdentifier
属性到BrowserWindow
。# 39980 - 向 tray icon 添加了 middle click mouse event。#39926
- 向
display
对象添加了多个属性,包括detected
、maximumCursorSize
和nativeOrigin
。#40554 - 添加了对 Linux 上环境变量
ELECTRON_OZONE_PLATFORM_HINT
的支持。#39792 - 添加了对
chrome.scripting
扩展 API 的支持。# 39395 - 添加了对更多扩展清单键的支持,包括
host_permissions
、author
和short_name
。# 39599 - 添加了使用
webContents.downloadURL()
发送 HTTP headers 的功能。# 39455 - 修改
systemPreferences.getColor(name)
返回 RGBA 十六进制值 (#RRGGBBAA
) 而非 plain RGB (#RRGGBB
) 值。#38960 - 在 Linux 上遵循 XDG 深色主题偏好设置。# 38977
- 通过传递 dummy
module.exports
提高了与沙盒预加载脚本中 CommonJS 模块的兼容性。#39484
改进
- 改进 Linux 上
child_process
API 的fork()
和execve()
性能。#39253 - 修复了 macOS 上调整大小的性能问题。# 40586
- 修复了 DWM 上的不透明窗口性能回归。#39895
- 在 macOS 上重新启用分区分配。#40230
删除/弃用
app.runningUnderRosettaTranslation
属性已被弃用。# 39897app
上的gpu-process-crashed
事件已被弃用。#40195app
上的renderer-process-crashed
事件以及WebContents
和<webview>
上的崩溃事件已被弃用。#40089
Fixes
- 修复了未引用时无法对
MessagePorts
进行垃圾回收的问题。#40201 - 修复了应用程序在 macOS Sonoma 上无法正确激活面板窗口的问题。#40465
- 修复了在 Linux 中传递给
shell.showItemInFolder
的文件路径不被转义的问题。#40562 - 修复了在
node_modules
中加载嵌套的 ESM 依赖关系的问题。在 asar 文件中支持fs.statSync
/fs.lstatSync
中的throwIfNoEntry
选项。#40224 - 修复了 first party sets. 的 same-party cookie 功能。#40526
- 在 macOS 上使用
activateIgnoringOtherApps
来 focusing non-panels。#40621
通知
终止对 25.xy 的支持
根据项目的支持政策,Electron 25.xy 已结束支持。鼓励开发人员和应用程序升级到较新版本的 Electron。
详情可查看更新说明。