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
下面就来看看Electron24.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
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经