Electron v28.0.0 发布,跨平台桌面应用开发工具

2023年 12月 7日 25.6k 0

Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。

Electron v28.0.0 更新内容如下:

Stack Upgrades

Breaking Changes

  • BrowserWindow.setTrafficLightPosition()BrowserWindow.getTrafficLightPosition()方法已被删除。#39479
  • app.runningUnderRosettaTranslation()方法已被删除。#39956
  • ipcRenderer.sendTo()方法已被删除。#39087
  • scroll-touch-{begin,end,edge}事件已被删除。#39814
  • backgroundThrottling设置为 false 将禁用BrowserWindow对其显示的所有WebContents的 frames throttling。#38924

Features

Additions

  • 启用 ESM 支持。#37535
    • 有关更多详细信息,参阅 ESM 文档。
  • UtilityProcessAPI 现在支持 ESM entrypoints。#40047
  • display对象添加了多个属性,包括detectedmaximumCursorSizenativeOrigin。#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
  • 添加了getWebRTCUDPPortRangesetWebRTCUDPPortRangeAPI 来指定 WebRTC 的 UDP 端口范围。#39046
  • 添加keyboardLockses.setPermissionRequestHandler(handler)。# 40460
  • 为 Windows 添加了mouse-entermouse-leaveTray 事件。#40072
  • webContents.printToPDF()添加了generateTaggedPDF选项,以便生成带 tag(可访问)的 PDF。#39563
  • 添加了一个tabbingIdentifier属性到BrowserWindow。# 39980
  • 向  tray icon 添加了 middle click mouse event。#39926
  • display对象添加了多个属性,包括detectedmaximumCursorSizenativeOrigin。#40554
  • 添加了对 Linux 上环境变量ELECTRON_OZONE_PLATFORM_HINT的支持。#39792
  • 添加了对chrome.scripting扩展 API 的支持。# 39395
  • 添加了对更多扩展清单键的支持,包括host_permissionsauthorshort_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属性已被弃用。# 39897
  • app上的gpu-process-crashed事件已被弃用。#40195
  • app上的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。

详情可查看更新说明。

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论