Electron 24.0.0

412 阅读3分钟

作者: georgexu99

译者: gaoshang212 / mtrucc

Electron 24.0.0 已发布! 此次升级中包含 Chromium 112.0.5615.49,V8 11.2,和 Node.js 18.14.0 。请阅读下文了解更多详情!


Electron 团队很高兴发布了 Electron 24.0.0 ! 您可以通过 npm install electron@latest 进行安装,或者从我们的 发布网站 下载它。 继续阅读此版本的详细信息。

如果您有任何反馈,请在Twitter上与我们分享,或加入我们的社区 Discord!Bug 和功能请求可以在 Electron 的 问题跟踪器 中报告。

重要变化

架构(Stack)更新

重大更改

API Changed: nativeImage.createThumbnailFromPath(path, size)

maxSize 参数已更改为 size 以反映传入的大小将是创建的缩略图的大小。以前,如果图像小于 maxSize,Windows 不会放大图像,而 macOS 总会将大小设置为 maxSize。现在跨平台的行为是相同的。

// 一张 128x128 的图片。
const imagePath = path.join('path', 'to', 'capybara.png');

// 放大较小的图像。
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
  console.log(result.getSize()); // { width: 256, height: 256 }
});

// 缩小更大的图像。
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
  console.log(result.getSize()); // { width: 64, height: 64 }
});

已废弃:BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) 已弃用,应使用 BrowserWindow.setWindowButtonPosition(position) API,它接受 null 而不是 { x: 0, y: 0 } 将位置重置为系统默认值。

// 在 Electron 24 中弃用
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// 替换为
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

已废弃: BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() 已弃用,应使用 BrowserWindow.getWindowButtonPosition() API,当没有自定义位置时,它返回 null 而不是 { x: 0, y: 0 } 。

// 在 Electron 24 中弃用
const pos = win.getTrafficLightPosition()
if (pos.x === 0 && pos.y === 0) {
  // 没有自定义位置。
}

// 替换为
const ret = win.getWindowButtonPosition();
if (ret === null) {
  // 没有自定义位置。
}

新特性

  • 添加了使用 cookies.get() 过滤 cookie 中 HttpOnly 的功能。 #37365
  • 将 logUsage 添加到 shell.openExternal() 参数中,以允许将 SEE_MASK_FLAG_LOG_USAGE 标志传递给 Windows 上的 ShellExecuteEx。 SEE_MASK_FLAG_LOG_USAGE 标志表示用户发起启动,可以跟踪常用程序和其他行为。 #37291
  • 为 webRequest 过滤器添加了 types,添加了过滤监听请求的能力。[#37427](github.com/electron/el… /37427)
  • 向 webContents 添加了一个新的 devtools-open-url 事件,以允许开发人员使用它们打开新窗口。 #36774
  • 向 webContents.print() 添加了几个标准页面大小选项。 #37265
  • 向会话处理程序 ses.setDisplayMediaRequestHandler() 的回调中添加了 enableLocalEcho 标志,以允许当 audio 为 WebFrameMain 时在本地输出流中回显远程音频输入。 #37528
  • 允许向 inAppPurchase.purchaseProduct() 传递一个特定于应用程序的用户名。 #35902
  • 公开了 window.invalidateShadow(),以清除 macOS 上残留的视觉伪影。 #32452
  • 整个程序优化现在在 Electron headers 配置文件中默认启用,允许编译器利用程序中所有模块的信息进行优化,而不是以每个模块 (compiland) 为基础。 #36937
  • SystemPreferences::CanPromptTouchID (macOS) 现在支持 Apple Watch。 #36935

终止对 21.x.y 的支持

根据项目的 支持政策,Electron 21.x.y 已经达到了支持的终点。 我们鼓励开发者将应用程序升级到更新的 Electron 版本。

E24(23 年 4 月)E25(23 年 5 月)E26(23 年 8月)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y

接下来

在短期内,您可以期待团队继续专注于跟上构成 Electron 的主要组件的开发,包括 Chromium、Node 和 V8。

您可以在此处找到 Electron的公开时间表

有关这些和未来变化的更多信息可在 计划的突破性变化 页面找到。

原文: Electron 24.0.0

Electron China 社区