Electron 24.0.0 正式发布,跨平台桌面应用开发工具

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

4 月 4 日,跨平台桌面应用开发工具 Electron 正式发布了 24.0.0 版本!该版本包括了对 Chromium 112.0.5615.49、V8 11.2 和 Node.js 18.14.0 的升级。可以通过以下 npm 命令来安装该版本:

npm install electron@latest

下面就来看看 Electron 24.0.0 都有哪些更新吧!

技术栈

  • Chromium 112.0.5615.49

Chrome 112 更新详情:https://developer.chrome.com/blog/new-in-chrome-112/

Chrome 111 更新详情:https://developer.chrome.com/blog/new-in-chrome-111/

DevTools 112 更新详情:https://developer.chrome.com/blog/new-in-devtools-112/

DevTools 111 更新详情:https://developer.chrome.com/blog/new-in-devtools-111/

  • Node.js 18.12.1
  • Node 18.12.1 更新详情:https://nodejs.org/en/blog/release/v18.12.1/

  • V8 11.0

重大变化

API 已更改: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) {
// No custom position.
}

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

新特性

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

结束对 21.x.y 的支持

根据项目的支持政策,Electron 21.x.y 已终止支持。鼓励开发人员和应用程序升级到更新版本的 Electron。

E24 (2023.4)

E25 (2023.5)

E26 (2023.6)

24.x.y

25.x.y

26.x.y

23.x.y

24.x.y

25.x.y

22.x.y

23.x.y

24.x.y

参考:​https://www.electronjs.org/blog/electron-24-0

责任编辑:武晓燕 来源: 前端充电宝
相关推荐

2023-08-16 00:52:31

Electron开发工具

2023-12-06 09:02:56

Electron前端

2023-10-11 10:03:33

Electron桌面应用开发工具

2024-02-21 09:43:50

ElectronNode.js前端

2023-06-03 00:04:43

Electron版本安全

2012-03-05 09:34:59

PhoneGapSencha ToucJQTouch

2015-03-30 16:00:21

Windows应用少开发工具

2016-06-06 17:26:22

平台开发

2012-02-09 16:45:41

2012-06-27 17:06:18

移动互联网移动应用跨平台开发工具

2017-10-25 08:53:52

2012-05-24 13:25:37

TitaniumPhoneGapAppcelerato

2013-09-10 10:44:39

移动开发工具游戏引擎

2011-05-11 10:39:51

XcodeiOS

2012-05-17 11:28:32

2016-05-16 09:32:04

移动开发工具技术

2012-06-27 17:25:52

VisionMobil跨平台开发工具

2014-06-04 10:37:20

CrossApp开源跨平台开发引擎

2011-07-19 09:15:42

GoogleAndroid 3.2开发工具

2011-06-01 11:08:08

J2EE
点赞
收藏

51CTO技术栈公众号