Electron 25.0.0 正式发布,跨平台桌面应用开发工具!|当前要闻
(相关资料图)
Electron 22 (Chromium 108) 的计划生命周期结束日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。Electron 团队将继续向后移植任何安全修复到 Electron 22 中,直到 2023 年 10 月 10 日。10 月 11 日,Electron 团队将支持回到最新的三个稳定主要版本,将不再支持 Windows 7/8/8.1。 5 月 30 日,Electron 25.0.0 正式发布!该版本包括了对 Chromium 114、V8 11.4 和 Node.js 18.15.0 的升级。下面就来看看该版本都有哪些更新!
可以通过以下命令来安装最新版本:
npm install electron@latest
主要更新
重点
在 Electron 的net模块中实现了使用 Chromium 网络技术的net.fetch。这与 Node 的fetch()不同,后者使用Node.js 的 HTTP 技术。添加protocol.handle,替换并弃用了protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol。扩展了对 Electron 22 的支持,以匹配 Chromium 和 Microsoft Windows 7/8/8.1 的弃用计划。技术栈
Chromium 114V8 11.4Node.js 18.15.0重要更新
弃用 protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol
protocol.register*Protocol和protocol.intercept*Protocol方法已被protocol.handle取代。
新方法可以注册新协议或拦截现有协议,响应可以是任何类型。
// Electron 25 中已弃用:protocol.registerBufferProtocol("some-protocol", () => { callback({ mimeType: "text/html", data: Buffer.from("Response
") });});// 使用以下方式代替:protocol.handle("some-protocol", () => { return new Response( Buffer.from("Response
"), // 可以是字符串或 ReadableStream。 { headers: { "content-type": "text/html" } } );});
// Electron 25 中已弃用:protocol.registerHttpProtocol("some-protocol", () => { callback({ url: "https://electronjs.org" });});// 使用以下方式代替:protocol.handle("some-protocol", () => { return net.fetch("https://electronjs.org");});
// Electron 25 中已弃用:protocol.registerFileProtocol("some-protocol", () => { callback({ filePath: "/path/to/my/file" });});// 使用以下方式代替:protocol.handle("some-protocol", () => { return net.fetch("file:///path/to/my/file");});
弃用 BrowserWindow.setTrafficLightPosition(position)
BrowserWindow.setTrafficLightPosition(position)已被弃用,应改用BrowserWindow.setWindowButtonPosition(position)API,它接受 null 而不是{ x: 0, y: 0 }以将位置重置为系统默认值。
// Electron 25 中已弃用: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 25 中已弃用:const pos = win.getTrafficLightPosition();if (pos.x === 0 && pos.y === 0) { // No custom position.}// 使用以下方式代替:const ret = win.getWindowButtonPosition();if (ret === null) { // 没有自定义位置}
新特性
添加了 net.fetch()。net.fetch支持对文件的请求:URL 和使用 protocol.register*Protocol 注册的自定义协议。添加了BrowserWindow.set/getWindowButtonPositionAPI。添加了protocol.handle,替换和弃用了protocol.{register,intercept}{String,Buffer,Stream,Http,File}协议。向 webContents 和22.x.y 持续支持
Electron 22 (Chromium 108) 的计划生命周期结束日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。Electron 团队将继续向后移植任何安全修复到 Electron 22 中,直到 2023 年 10 月 10 日。10 月 11 日,Electron 团队将支持回到最新的三个稳定主要版本,将不再支持 Windows 7/8/8.1。
参考:https://www.electronjs.org/blog/electron-25-0