Electron 3.0正式版发布,新特性详解
译者|无明编辑|覃云
Electron 团队正式发布 Electron 3 的第一个稳定版本,现在就可以从 electronjs.org 下载或通过 npm install electron@latest 安装!新版本带来了众多升级选项、问题修复和新特性。以下是新版本的详细信息。
发布流程
在开发 v3.0.0 的过程中,Electron 团队正式化渐进式 beta 版本的反馈进度,依赖经验定义稳定版本标准。App Feedback Program 的合作伙伴们在测试期间提供了早期的测试和反馈,否则 v3.0.0 可能无法按时发布。这些合作伙伴包括 Atlassian、Atom、Microsoft Teams、Oculus、OpenFin、Slack、Symphony、VS Code 等。如果用户想参与未来的测试,请发送电子邮件至 info@electronjs.org。
变更 / 新特性
Electron 工具链的几个重要部分受到重大影响,包括 Chrome v66.0.3359.181、Node v10.2.0 和 V8 v6.6.346.23。
app.isPackaged;
app.whenReady();
process.getHeapStatistics();
win.moveTop() 用于将窗口移到顶部(z-order);
TextField 和 Button API;
用于动态日志记录控制的 netLog API;
在沙箱渲染器中启用 WebView;
fs.readSync 现在适用于海量文件;
Node fs 包装器的 fs.realpathSync.native 和 fs.realpath.native 可用。
重大 API 变更
菜单项顺序控制更新;
移除已弃用的 API;
移除了 did-get-response-details 和 did-get-redirect-request 事件;
默认禁用导航拖放;
要使用 electron npm 模块,要求 Node v4.x 或更高版本;
NativeWindow 重构;
menu.popup() 重构;
不再使用 JSON 发送 ipcRenderer.sendSync 的结果;
默认忽略跟在 URL 后面的命令行参数;
将 api::Window 重命名为 api::BrowserWindow;
默认关闭视觉缩放;
将 App 命令 media-play_pause 重命名为 media-play-pause。
macOS
支持工作区通知;
tray.setIgnoreDoubleClickEvents(ignore) 用于忽略托盘双击事件;
macOS 上的鼠标前进功能;
屏幕锁定 / 解锁事件。
Windows
在屏幕坐标转换中添加 DIP
注意:在运行新版本后切换到旧版本的 Electron 需要清除用户数据目录,以避免旧版本崩溃。用户可以通过运行 console.log(app.getPath(“userData”)) 获取用户数据目录,或者查看文档 (https://electronjs.org/docs/api/app#appgetpathname) 以获取更多详细信息。
bug 修复
fs.statSyncNoException 抛出异常的问题;
使用 jQuery 加载网页时发生崩溃;
net::ClientSocketHandle 析构函数崩溃问题;
立即(而不是在下一个时间点)通知焦点变更。
macOS
允许在<input file =“type”>文件对话框中选择包的问题 ;
使用异步对话框时阻塞主进程的问题;
上下文菜单单击回调;
重复使用 touchbar 项目时发生事件泄漏;
托盘标题崩溃;
不可拖动的区域;
防止在菜单打开时进行更新;
托盘图标边界不允许负值;
高亮托盘标题时不反色;
在设置 enable_run_as_node == false 时进行 Mac 构建;
无边框窗口的其他问题;
在调用 app.removeAsDefaultProtocolClient 后将 mac 协议设置为 none;
MAS 构建中私有 API 的使用不正确;
tray.setContextMenu 崩溃;
即使设置了 defaultId,在对话框上按下 esc 键也会关闭它。
Linux
用于屏幕外窗口的 BrowserWindow.focus()
其他说明
PDF Viewer 目前无法正常运行,但正在解决当中,很快就可以正常运行;TextField 和 Button API 是实验性的,因此默认情况下处于关闭状态,可以使用 enable_view_api 构建标志来启用它们。
下一步
Electron 团队将继续致力于定义更好的流程,以实现更快速、更顺畅的升级,最终与 Chromium、Node 和 V8 的开发节奏保持一致。
英文原文
https://electronjs.org/blog/electron-3-0
课程推荐
今天 0-24 点,《Java 核心技术 36 讲》专栏献上限时拼团价:¥49/2 人成团,9 月 24 日立即恢复原价¥68,长按识别下图二维码,点击“拼团价¥49”按钮,立即拼团!