Electron 3.0.0
·4 分钟阅读
Electron 团队很高兴地宣布,Electron 3 的第一个稳定版本现在可以通过 electronjs.org 和 npm install electron@latest
获取!它包含大量升级、修复和新功能,我们迫不及待想看看您用它们构建什么。以下是关于此版本的详细信息,我们欢迎您在探索时提出反馈。
发布流程
在我们进行 v3.0.0
的开发时,我们试图通过正式化渐进式 beta 版本的反馈进度,更经验地定义稳定版本的标准。如果没有我们的 应用程序反馈计划合作伙伴在 beta 测试周期中提供的早期测试和反馈,v3.0.0
将不可能实现。感谢 Atlassian、Atom、Microsoft Teams、Oculus、OpenFin、Slack、Symphony、VS Code 和其他项目成员的工作。如果您想参与未来的 beta 测试,请发送邮件至 [email protected]。
变更/新功能
Electron 工具链的几个重要部分进行了重大升级,包括 Chrome v66.0.3359.181
、Node v10.2.0
和 V8 v6.6.346.23.
- [#12656] feat:
app.isPackaged
- [#12652] feat:
app.whenReady()
- [#13183] feat:
process.getHeapStatistics()
- [#12485] feat:
win.moveTop()
将窗口 z 轴顺序移动到顶部 - [#13110] feat: TextField 和 Button API
- [#13068] feat: 用于动态日志控制的 netLog API
- [#13539] feat: 在沙箱渲染器中启用
webview
- [#14118] feat:
fs.readSync
现在可以处理大型文件 - [#14031] feat: node
fs
包装器,使fs.realpathSync.native
和fs.realpath.native
可用
重大 API 更改
- [#12362] feat: 更新菜单项顺序控制
- [#13050] refactor: 删除已记录的已弃用 API
- 有关更多详细信息,请参阅 文档
- [#12477] refactor: 删除
did-get-response-details
和did-get-redirect-request
事件 - [#12655] feat: 默认禁用拖放时的导航
- [#12993] feat: 使用
electron
npm 模块需要 Nodev4.x
或更高版本 - [#12008 #12140 #12503 #12514 #12584 #12596 #12637 #12660 #12696 #12716 #12750 #12787 #12858] refactor:
NativeWindow
- [#11968] refactor:
menu.popup()
- [#8953] feat: 不再使用 JSON 发送
ipcRenderer.sendSync
的结果 - [#13039] feat: 默认忽略 URL 后面的命令行参数
- [#12004] refactor: 将
api::Window
重命名为api::BrowserWindow
- [#12679] feat: 视觉缩放现在默认关闭
- [#12408] refactor: 将应用命令
media-play_pause
重命名为media-play-pause
macOS
- [#12093] feat: 工作区通知支持
- [#12496] feat:
tray.setIgnoreDoubleClickEvents(ignore)
忽略托盘双击事件。 - [#12281] feat: macOS 上的鼠标前进功能
- [#12714] feat: 屏幕锁定/解锁事件
Windows
- [#12879] feat: 添加了 DIP 与屏幕坐标之间的转换
注意:在运行此版本后切换到旧版本的 Electron 将需要您清除用户数据目录,以避免旧版本崩溃。您可以通过运行 console.log(app.getPath("userData"))
来获取用户数据目录,或查看 文档 以了解更多详细信息。
Bug 修复
- [#13397] fix: 修复了
fs.statSyncNoException
抛出异常的问题 - [#13476, #13452] fix: 修复了加载包含 jQuery 的网站时崩溃的问题
- [#14092] fix: 修复了
net::ClientSocketHandle
析构函数中的崩溃 - [#14453] fix: 修复了立即通知焦点变化而不是在下一个 tick 通知的问题
MacOS
- [#13220] fix: 修复了允许在
<input file="type">
打开文件对话框中选择捆绑包的问题 - [#12404] fix: 修复了使用异步对话框时阻塞主进程的问题
- [#12043] fix: 修复了上下文菜单点击回调
- [#12527] fix: 修复了重用触控栏项目时发生的事件泄漏
- [#12352] fix: 修复了托盘标题崩溃的问题
- [#12327] fix: 修复了不可拖动区域的问题
- [#12809] fix: 修复了防止菜单在打开时更新的问题
- [#13162] fix: 修复了托盘图标边界不允许负值的问题
- [#13085] fix: 修复了高亮时托盘标题不反转的问题
- [#12196] fix: 修复了
enable_run_as_node==false
时的 Mac 构建 - [#12157] fix: 修复了具有 vibrancy 的无边框窗口的其他问题
- [#13326] fix: 修复了在调用
app.removeAsDefaultProtocolClient
后将 mac 协议设置为 none 的问题 - [#13530] fix: 修复了 MAS 构建中不正确地使用私有 API 的问题
- [#13517] fix: 修复了
tray.setContextMenu
崩溃的问题 - [#14205] fix: 修复了即使设置了
defaultId
,按下 Esc 键现在也会关闭对话框的问题
Linux
- [#12507] fix: 修复了非屏幕窗口的
BrowserWindow.focus()
问题
其他注意事项
- PDF 查看器目前无法工作,但正在修复中,很快将再次正常运行
TextField
和Button
API 是实验性的,因此默认关闭- 可以使用
enable_view_api
构建标志启用它们
- 可以使用
下一步
Electron 团队将继续致力于定义我们的流程,以便更快更顺利地进行升级,因为我们力求最终与 Chromium、Node 和 V8 的开发节奏保持一致。