跳到主要内容

带有 “Release” 标签的 42 篇文章

关于新 Electron 版本的博客文章

查看所有标签

Electron 24.0.0

·4 分钟阅读

Electron 24.0.0 已发布!它包括对 Chromium 112.0.5615.49、V8 11.2 和 Node.js 18.14.0 的升级。阅读下文了解更多详细信息!


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

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

值得注意的更改

堆栈更改

重大更改

API 更改:nativeImage.createThumbnailFromPath(path, size)

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

// a 128x128 image.
const imagePath = path.join('path', 'to', 'capybara.png');

// Scaling up a smaller image.
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// Scaling down a larger image.
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

新功能

  • 添加了使用 cookies.get() 过滤 HttpOnly Cookie 的功能。#37365
  • logUsage 添加到 shell.openExternal() 选项,允许将 SEE_MASK_FLAG_LOG_USAGE 标志传递给 Windows 上的 ShellExecuteExSEE_MASK_FLAG_LOG_USAGE 标志表示用户启动的启动,启用对常用程序和其他行为的跟踪。#37291
  • types 添加到 webRequest 过滤器,添加了过滤您监听的请求的功能。#37427
  • webContents 添加了一个新的 devtools-open-url 事件,以允许开发人员打开带有它们的新窗口。#36774
  • webContents.print() 添加了多个标准页面大小选项。#37265
  • enableLocalEcho 标志添加到会话处理程序 ses.setDisplayMediaRequestHandler() 回调,以便当 audioWebFrameMain 时,允许在本地输出流中回显远程音频输入。#37528
  • 允许将特定于应用程序的用户名传递给 inAppPurchase.purchaseProduct()#35902
  • 公开了 window.invalidateShadow() 以清除 macOS 上的残留视觉伪影。#32452
  • 默认情况下,在 electron node 标头配置文件中启用全程序优化,允许编译器使用来自程序中所有模块的信息(而不是每个模块(编译单元)的基础上)执行优化。#36937
  • SystemPreferences::CanPromptTouchID (macOS) 现在支持 Apple Watch。#36935

对 21.x.y 的支持结束

根据该项目的支持策略,Electron 21.x.y 已达到支持的结束。鼓励开发人员和应用程序升级到较新版本的 Electron。

正如告别 Windows 7/8/8.1中所述,Electron 22(Chromium 108)的计划终止日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。Electron 团队将继续将此计划中包含的任何安全修复程序反向移植到 Electron 22,直到 2023 年 10 月 10 日。

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

下一步是什么

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

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 23.0.0

·3 分钟阅读

Electron 23.0.0 已发布!它包括对 Chromium 110、V8 11.0 和 Node.js 18.12.1 的升级。此外,已放弃对 Windows 7/8/8.1 的支持。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布 Electron 23.0.0 的发布!您可以通过 npm 使用 npm install electron@latest 安装它,或从我们的发布网站下载它。请继续阅读以了解有关此版本的详细信息。

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

值得注意的更改

堆栈更改

新功能

  • Display 对象添加了 label 属性。#36933
  • 添加了 app.getPreferredSystemLanguages() API 来返回用户的系统语言。#36035
  • 添加了对 WebUSB API 的支持。#36289
  • 添加了对 SerialPort.forget() 的支持,以及当给定来源被撤销时,在 Session 对象上发出新的事件 serial-port-revoked#35310
  • 添加了新的 win.setHiddenInMissionControl API,允许开发者选择在 macOS 上不使用 Mission Control。#36092

放弃 Windows 7/8/8.1 支持

Electron 23 不再支持 Windows 7/8/8.1。Electron 遵循计划的 Chromium 弃用策略,该策略将在 Chromium 109 中弃用 Windows 7/8/8.1 以及 Windows Server 2012 和 2012 R2 的支持(在此处阅读更多信息)

重大 API 更改

以下是 Electron 23 中引入的重大更改。您可以在计划的重大更改页面上阅读有关这些更改和未来更改的更多信息。

已删除:BrowserWindow scroll-touch-* 事件

已删除 BrowserWindow 上已弃用的 scroll-touch-beginscroll-touch-endscroll-touch-edge 事件。请改用 WebContents 上新提供的 input-event 事件。

// Removed in Electron 23.0
-win.on('scroll-touch-begin', scrollTouchBegin)
-win.on('scroll-touch-edge', scrollTouchEdge)
-win.on('scroll-touch-end', scrollTouchEnd)

// Replace with
+win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') +{
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+})

结束对 20.x.y 的支持

根据项目的支持策略,Electron 20.x.y 已达到支持结束状态。鼓励开发人员和应用程序升级到较新版本的 Electron。

E22 (22 年 11 月)E23 (23 年 2 月)E24(2023 年 4 月)E25(2023 年 5 月)E26(2023 年 8 月)
22.x.y23.x.y24.x.y25.x.y26.x.y
21.x.y22.x.y23.x.y24.x.y25.x.y
20.x.y21.x.y22.x.y23.x.y24.x.y

下一步是什么

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

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 22.0.0

·5 分钟阅读

Electron 22.0.0 已发布!它包括一个新的实用程序进程 API、Windows 7/8/8.1 支持的更新,以及对 Chromium 108、V8 10.8 和 Node.js 16.17.1 的升级。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布 Electron 22.0.0 的发布!您可以通过 npm 使用 npm install electron@latest 安装它,或从我们的发布网站下载它。请继续阅读以了解有关此版本的详细信息。

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

值得注意的更改

堆栈更改

突出显示的特性

UtilityProcess API #36089

新的 UtilityProcess 主进程模块允许创建仅具有 Node.js 集成的轻量级 Chromium 子进程,同时还允许使用 MessageChannel 与沙盒渲染器进行通信。该 API 基于 Node.js child_process.fork 设计,以便更容易过渡,主要区别在于入口点 modulePath 必须来自打包应用程序内部,以便只允许加载受信任的脚本。此外,该模块默认情况下阻止与渲染器建立通信通道,从而维护主进程是应用程序中唯一受信任进程的约定。

您可以在我们的文档中阅读有关新的 UtilityProcess API 的更多信息

Windows 7/8/8.1 支持更新

信息

2023/02/16:关于 Windows Server 2012 支持的更新

上个月,Google 宣布 Chrome 109 将继续接收 Windows Server 2012 和 Windows Server 2012 R2 的关键安全修复程序,直到 2023 年 10 月 10 日。相应地,Electron 22(Chromium 108)计划的生命周期结束日期将从 2023 年 5 月 30 日延长至 2023 年 10 月 10 日。Electron 团队将继续将该计划中的任何安全修复程序反向移植到 Electron 22,直到 2023 年 10 月 10 日。

请注意,我们不会为 Windows 7/8/8.1 进行额外的安全修复。此外,正如之前宣布的那样,Electron 23(Chromium 110)仅在 Windows 10 及更高版本上运行。

Electron 22 将是最后一个支持 Windows 7/8/8.1 的 Electron 主要版本。Electron 遵循计划的 Chromium 弃用策略,该策略将在 Chromium 109 中弃用 Windows 7/8/8.1 的支持(在此处阅读更多信息)

Electron 23 及以后的主要版本将不支持 Windows 7/8/8.1。

其他突出显示的更改

  • 添加了对 Linux 和 Windows 上 Web 蓝牙引脚配对的支持。#35416
  • 添加了 LoadBrowserProcessSpecificV8Snapshot 作为新的熔断器,它将允许主/浏览器进程从 browser_v8_context_snapshot.bin 文件加载其 v8 快照。任何其他进程将使用与今天使用的相同的路径。#35266
  • 添加了 WebContents.opener 以访问窗口开启器,以及 webContents.fromFrame(frame) 以获取与 WebFrameMain 实例对应的 WebContents。#35140
  • 通过新的会话处理程序 ses.setDisplayMediaRequestHandler 添加了对 navigator.mediaDevices.getDisplayMedia 的支持。#30702

重大 API 更改

以下是 Electron 22 中引入的重大更改。您可以在计划的重大更改页面上阅读有关这些更改和未来更改的更多信息。

已弃用:webContents.incrementCapturerCount(stayHidden, stayAwake)

webContents.incrementCapturerCount(stayHidden, stayAwake) 已被弃用。当页面捕获完成时,它现在由 webContents.capturePage 自动处理。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

已弃用:webContents.decrementCapturerCount(stayHidden, stayAwake)

webContents.decrementCapturerCount(stayHidden, stayAwake) 已被弃用。当页面捕获完成时,它现在由 webContents.capturePage 自动处理。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

已删除:WebContents new-window 事件

已删除 WebContents 的 new-window 事件。它已被 webContents.setWindowOpenHandler() 取代。

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

已弃用:BrowserWindow scroll-touch-* 事件

已弃用 BrowserWindow 上的 scroll-touch-beginscroll-touch-endscroll-touch-edge 事件。请改用 WebContents 上新提供的 input-event 事件

// Deprecated
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// Replace with
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

结束对 19.x.y 的支持

根据项目的支持策略,Electron 19.x.y 已达到支持结束状态。鼓励开发人员和应用程序升级到较新版本的 Electron。

E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (22 年 11 月)E23 (23 年 1 月)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

下一步是什么

Electron 项目将于 2022 年 12 月暂停,并于 2023 年 1 月恢复。更多信息请参阅12 月停工博客文章

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

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 21.0.0

·3 分钟阅读

Electron 21.0.0 已发布!它包括 Chromium 106、V8 10.6 和 Node.js 16.16.0 的升级。请阅读下文了解更多详细信息!


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

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

值得注意的更改

堆栈更改

新功能

  • 添加了 webFrameMain.origin#35534
  • 添加了新的 WebContents.ipcWebFrameMain.ipc API。#35231
  • 添加了对面板式行为的支持。窗口可以浮动在全屏应用程序之上。#34388
  • 添加了对 macOS 应用程序来自 APNs 的推送通知的支持。#33574

重大更改 & API 更改

以下是 Electron 21 中引入的重大更改。

V8 内存隔离已启用

Electron 21 启用了V8 沙箱指针,遵循 Chrome 在 Chrome 103 中做出相同决定。这对原生模块有一些影响。此功能具有性能和安全性优势,但也对原生模块施加了一些新的限制,例如使用指向外部(“堆外”)内存的 ArrayBuffer。请参阅这篇博客文章了解更多信息。#34724

重构 webContents.printToPDF

重构了 webContents.printToPDF 以与 Chromium 的无头实现保持一致。有关更多信息,请参见#33654

有关这些和未来更改的更多信息,请访问计划的重大更改页面。

对 18.x.y 的支持结束

根据项目的支持策略,Electron 18.x.y 已达到支持结束。鼓励开发人员和应用程序升级到更新版本的 Electron。

E18 (2022 年 3 月)E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (2022 年 12 月)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y

下一步是什么

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

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 20.0.0

·4 分钟阅读

Electron 20.0.0 已发布!它包括 Chromium 104、V8 10.4 和 Node.js 16.15.0 的升级。请阅读下文了解更多详细信息!


Electron 团队很高兴地宣布 Electron 20.0.0 的发布!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载。继续阅读以了解有关此版本的详细信息,并请分享您的任何反馈!

值得注意的更改

新功能

  • 在 Windows 上添加了沉浸式黑暗模式。#34549
  • 添加了对面板式行为的支持。窗口可以浮动在全屏应用程序之上。#34665
  • 更新了 Windows 控制覆盖按钮,使其在 Windows 11 上看起来和感觉更像原生控件。#34888
  • 渲染器现在默认情况下是沙箱化的,除非指定 nodeIntegration: truesandbox: false#35125
  • 在构建具有 nan 的原生模块时添加了安全措施。#35160

堆栈更改

重大更改 & API 更改

以下是 Electron 20 中引入的重大更改。有关这些和未来更改的更多信息,请访问计划的重大更改页面。

默认更改:没有 nodeIntegration: true 的渲染器默认情况下是沙箱化的

以前,指定了预加载脚本的渲染器默认情况下是不沙箱化的。这意味着默认情况下,预加载脚本可以访问 Node.js。在 Electron 20 中,此默认值已更改。从 Electron 20 开始,渲染器默认情况下是沙箱化的,除非指定了 nodeIntegration: truesandbox: false

如果您的预加载脚本不依赖于 Node,则无需执行任何操作。如果您的预加载脚本确实依赖于 Node,则可以重构它们以从渲染器中删除 Node 用法,或者为相关渲染器显式指定 sandbox: false

已修复:nan 原生模块中的自发崩溃

在 Electron 20 中,我们更改了与原生模块相关的两个项

  1. V8 标头现在默认使用 c++17。此标志已添加到 electron-rebuild。
  2. 我们修复了一个缺少 include 会导致依赖于 nan 的原生模块中自发崩溃的问题。

为了获得最大的稳定性,我们建议在重建原生模块时使用 node-gyp >=8.4.0 和 electron-rebuild >=3.2.9,尤其是依赖于 nan 的模块。有关更多信息,请参见 electron #35160 和 node-gyp #2497

已删除:Linux 上的 .skipTaskbar

在 X11 上,skipTaskbar 向 X11 窗口管理器发送 _NET_WM_STATE_SKIP_TASKBAR 消息。Wayland 没有直接的等效项,并且已知的工作方案具有不可接受的权衡(例如,GNOME 中的 Window.is_skip_taskbar 需要不安全模式),因此 Electron 无法在 Linux 上支持此功能。

对 17.x.y 的支持结束

根据项目的支持策略,Electron 17.x.y 已达到支持结束。鼓励开发人员和应用程序升级到更新版本的 Electron。

E18 (2022 年 3 月)E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (2022 年 12 月)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

下一步是什么

在短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布带有这些组件新版本的 Electron 的新主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 19.0.0

·3 分钟阅读

Electron 19.0.0 已发布!它包括 Chromium 102、V8 10.2 和 Node.js 16.14.2 的升级。请阅读下文了解更多详细信息!


Electron 团队很高兴地宣布 Electron 19.0.0 的发布!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载。继续阅读以了解有关此版本的详细信息,并请分享您的任何反馈!

值得注意的更改

Electron 发布节奏变更

该项目将恢复其早期支持最新三个主要版本的策略。请参阅我们的版本控制文档,以获取有关 Electron 版本控制和支持的更多详细信息。为了帮助用户适应从 Electron 15 开始的新发布节奏,这暂时是四个主要版本。您可以阅读此处的完整详细信息

堆栈更改

重大更改 & API 更改

以下是 Electron 19 中引入的重大更改。有关这些和未来更改的更多信息,请访问计划的重大更改页面。

在 Linux 上不受支持:.skipTaskbar

不再在 Linux 上支持 BrowserWindow 构造函数选项 skipTaskbar。在#33226中进行了更改

已删除 WebPreferences.preloadURL

半文档化的 preloadURL 属性已从 WebPreferences 中删除。#33228。应使用 WebPreferences.preload 代替。

对 15.x.y 和 16.x.y 的支持结束

Electron 14.x.y 和 15.x.y 版本均已停止支持。这使得 Electron 回归到其支持最新的三个主要版本的现有政策即支持最新的三个主要版本。我们鼓励开发者和应用程序升级到较新的 Electron 版本。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (2022 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步是什么

在短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布带有这些组件新版本的 Electron 的新主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 18.0.0

·3 分钟阅读

Electron 18.0.0 已发布!它包括对 Chromium 100、V8 10.0 和 Node.js 16.13.2 的升级。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布发布 Electron 18.0.0!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载它。请继续阅读有关此版本的详细信息,并分享您的任何反馈!

值得注意的更改

Electron 发布节奏变更

从 Electron 15 开始,Electron 将每 8 周发布一个新的主要稳定版本。您可以在此处阅读完整详情。

此外,Electron 已将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月。有关 Electron 版本控制的更多详细信息,请参阅我们的版本控制文档。在 2022 年 5 月之后,我们将恢复支持最新的三个版本。

堆栈更改

突出显示的特性

  • 添加了用于设置代码缓存目录的 ses.setCodeCachePath() API。#33286
  • 删除了旧的基于 BrowserWindowProxywindow.open 实现。这也从 webPreferences 中删除了 nativeWindowOpen 选项。#29405
  • WebContents 添加了 “focus” 和 “blur” 事件。#25873
  • 在 macOS 上添加了“Substitutions”菜单角色:showSubstitutionstoggleSmartQuotestoggleSmartDashestoggleTextReplacement#32024
  • app.requestSingleInstanceLock() 流程添加了 first-instance-ack 事件,允许用户无缝地将数据从第一个实例传输到第二个实例。#31460
  • 添加了对 setBackgroundColor 中更多颜色格式的支持。#33364

有关新功能和更改的完整列表,请参阅 18.0.0 发行说明

重大更改 & API 更改

以下是 Electron 18 中引入的重大更改。有关这些更改和未来更改的更多信息,请访问计划的重大更改页面。

已删除:nativeWindowOpen

在 Electron 15 之前,默认情况下,window.open 被填充为使用 BrowserWindowProxy。这意味着 window.open('about:blank') 不能用于同步打开可编写脚本的子窗口,以及其他不兼容之处。自 Electron 15 起,默认启用 nativeWindowOpen

有关更多详细信息,请参阅 Electron 中window.open 的文档。在 #29405 中删除

14.x.y 停止支持

根据项目的支持政策,Electron 14.x.y 已停止支持。我们鼓励开发者和应用程序升级到较新的 Electron 版本。

自 Electron 15 起,我们将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之后,我们将恢复支持最新的三个版本。此版本支持更改是我们新的节奏更改的一部分。请参阅我们的博客文章了解完整详细信息。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (2022 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步是什么

在短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布带有这些组件新版本的 Electron 的新主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 17.0.0

·3 分钟阅读

Electron 17.0.0 已发布!它包括对 Chromium 98、V8 9.8 和 Node.js 16.13.0 的升级。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布发布 Electron 17.0.0!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载它。请继续阅读有关此版本的详细信息,并分享您的任何反馈!

值得注意的更改

Electron 发布节奏变更

从 Electron 15 开始,Electron 将每 8 周发布一个新的主要稳定版本。您可以在此处阅读完整详情。

此外,Electron 已将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月。有关 Electron 版本控制的更多详细信息,请参阅我们的版本控制文档。在 2022 年 5 月之后,我们将恢复支持最新的三个版本。

堆栈更改

突出显示的特性

  • 添加了 webContents.getMediaSourceId(),可与 getUserMedia 一起使用以获取 WebContents 的流。#31204
  • 弃用了 webContents.getPrinters() 并引入了 webContents.getPrintersAsync()#31023
  • desktopCapturer.getSources 现在仅在主进程中可用。#30720

有关新功能和更改的完整列表,请参阅 17.0.0 发行说明

重大更改

以下是 Electron 17 中引入的重大更改。有关这些更改和未来更改的更多信息,请访问计划的重大更改页面。

渲染器中的 desktopCapturer.getSources

desktopCapturer.getSources API 现在仅在主进程中可用。为了提高 Electron 应用的默认安全性,我们进行了此更改。

API 更改

Electron 17 中没有 API 更改。

已删除/已弃用更改

  • 已删除渲染器中 desktopCapturer.getSources API 的使用。有关如何在您的应用程序中替换此 API 的详细信息,请参阅此处

13.x.y 停止支持

根据项目的支持政策,Electron 13.x.y 已停止支持。我们鼓励开发者和应用程序升级到较新的 Electron 版本。

自 Electron 15 起,我们将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之后,我们将恢复支持最新的三个版本。此版本支持更改是我们新的节奏更改的一部分。请参阅我们的博客文章了解完整详细信息。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (2022 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步是什么

在短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布带有这些组件新版本的 Electron 的新主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 16.0.0

·4 分钟阅读

Electron 16.0.0 已发布!它包括对 Chromium 96、V8 9.6 和 Node.js 16.9.1 的升级。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布发布 Electron 16.0.0!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载它。请继续阅读有关此版本的详细信息,并分享您的任何反馈!

值得注意的更改

Electron 发布节奏变更

从 Electron 15 开始,Electron 将每 8 周发布一个新的主要稳定版本。您可以在此处阅读完整详情。

此外,Electron 已将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月。有关 Electron 版本控制的更多详细信息,请参阅我们的版本控制文档。在 2022 年 5 月之后,我们将恢复支持最新的三个版本。

堆栈更改

突出显示的特性

  • 现在支持 WebHID API。#30213
  • 将数据参数添加到 app.requestSingleInstanceLock 以在实例之间共享数据。#30891
  • 将 securityOrigin 传递给媒体权限请求处理程序。#31357
  • 添加 commandLine.removeSwitch#30933

有关新功能和更改的完整列表,请参阅 16.0.0 发行说明

重大更改

以下是 Electron 16 中引入的重大更改。有关这些更改和未来更改的更多信息,请访问计划的重大更改页面。

构建原生模块

如果您的项目使用 node-gyp 构建原生模块,则您可能需要根据项目的设置和 Electron 版本使用 --force-process-config 调用它。有关此更改的更多信息,请访问#2497

行为已更改:Linux 上 crashReporter 的实现已切换到 Crashpad

Linux 上 crashReporter API 的底层实现已从 Breakpad 更改为 Crashpad,使其与 Windows 和 Mac 保持一致。因此,现在会自动监控子进程,并且不再需要在 Node 子进程中调用 process.crashReporter.start(也不建议这样做,因为它会启动 Crashpad 报告器的第二个实例)。

Linux 上报告注解的方式也有一些细微的变化,包括长值不再在附加 __1__2 等的注解之间拆分,而是会在(新的、更长的)注解值限制处截断。

API 更改

Electron 16 中没有 API 更改。

已删除/已弃用更改

  • 已弃用在渲染器中使用 desktopCapturer.getSources API,并且将被删除。此更改提高了 Electron 应用的默认安全性。有关如何在您的应用程序中替换此 API 的详细信息,请参阅此处

12.x.y 停止支持

根据项目的支持政策,Electron 12.x.y 已停止支持。我们鼓励开发者和应用程序升级到较新的 Electron 版本。

自 Electron 15 起,我们将支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之后,我们将恢复支持最新的三个版本。此版本支持更改是我们新的节奏更改的一部分。请参阅我们的博客文章了解完整详细信息。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (2022 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步是什么

在短期内,您可以预期团队将继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。虽然我们谨慎地不承诺发布日期,但我们的计划是大约每 2 个月发布带有这些组件新版本的 Electron 的新主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。

Electron 15.0.0

·4 分钟阅读

Electron 15.0.0 已发布!它包括对 Chromium 94、V8 9.4 和 Node.js 16.5.0 的升级。我们为 window.open 添加了 API 更新、错误修复和一般改进。请阅读以下内容了解更多详情!


Electron 团队很高兴地宣布发布 Electron 15.0.0!您可以通过 npm 使用 npm install electron@latest 安装它,或者从我们的发布网站下载它。请继续阅读有关此版本的详细信息,并分享您的任何反馈!

值得注意的更改

Electron 发布节奏变更

从 Electron 15 开始,Electron 将每 8 周发布一个新的主要稳定版本。您可以在此处阅读完整详情

此外,Electron 将在 2022 年 5 月之前将支持的版本从最新的三个版本更改为最新的四个版本。请参阅我们的版本控制文档,了解有关 Electron 中版本控制的更详细信息。

堆栈更改

重点功能

  • nativeWindowOpen: true 不再是实验性的,现在是默认值。
  • 添加了 safeStorage 字符串加密 API。#30430
  • WebContents 添加了 'frame-created' 事件,当页面中创建框架时会发出该事件。#30801
  • 将调整大小的 edge 信息添加到 BrowserWindowwill-resize 事件中。#29199

有关新功能和更改的完整列表,请参阅 15.0.0 发行说明

重大更改

以下是 Electron 15 中引入的重大更改。有关这些更改和未来更改的更多信息,请访问计划的重大更改页面。

默认更改:nativeWindowOpen 默认为 true

在 Electron 15 之前,window.open 默认被 shimmed 为使用 BrowserWindowProxy。这意味着 window.open('about:blank') 不能用于打开同步可脚本化的子窗口,以及其他不兼容之处。nativeWindowOpen: true 不再是实验性的,现在是默认值。

有关更多详细信息,请参阅 Electron 中 window.open 的文档。

API 更改

  • WebContents 添加了 'frame-created' 事件,当页面中创建框架时会发出该事件。#30801
  • 添加了 safeStorage 字符串加密 API。#30430
  • dialog.showMessageBox 添加了 signal 选项。#26102
  • 添加了一个Electron Fuse,用于强制对应用程序加载的 app.asar 文件进行代码签名。需要最新的 asar 模块(v3.1.0 或更高版本)。#30900
  • 添加了保险丝以禁用打包应用程序中的 NODE_OPTIONS--inspect 调试参数。#30420
  • 添加了新的 MenuItem.userAccelerator 属性以读取用户分配的 macOS 加速器覆盖。#26682
  • 添加了新的 app.runningUnderARM64Translation 属性,用于检测在 Apple Silicon 上通过 Rosetta 运行,或在 Windows for ARM 上通过 WOW 运行时。#29168
  • 添加了新的 imageAnimationPolicy 网络首选项以控制图像的动画方式。#29095
  • 添加了通过上下文桥发送 Blob 的支持。#29247

已删除/已弃用更改

没有删除或弃用任何 API。

支持的版本

从 Electron 15 开始,我们将把支持的版本从最新的三个版本更改为最新的四个版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之后,我们将恢复支持最新的三个版本。此版本支持更改是我们新的节奏更改的一部分。请参阅我们的博客文章,了解此处的所有详细信息

鼓励开发人员和应用程序升级到较新版本的 Electron。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (2022 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步是什么

在短期内,您可以期望团队继续专注于跟上构成 Electron 的主要组件(包括 Chromium、Node 和 V8)的开发。尽管我们谨慎地不承诺发布日期,但我们的计划是大约每季度发布具有这些组件新版本的 Electron 主要版本。

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

有关未来更改的更多信息,请访问计划的重大更改页面。