跳转到主要内容

47 条带有“Release”标签的帖子

关于 Electron 新发布的博客文章

查看所有标签

Electron 3.0.0

·6 分钟阅读

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 版,请发送邮件至 info@electronjs.org

更改 / 新功能

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.nativefs.realpath.native 可用

API 重大更改

  • [#12362] feat: 更新菜单项顺序控制
  • [#13050] refactor: 移除已文档化并弃用的 API
    • 有关更多详细信息,请参阅 文档
  • [#12477] refactor: 移除 did-get-response-detailsdid-get-redirect-request 事件
  • [#12655] feat: 默认禁用拖放导航
  • [#12993] feat: 使用 electron npm 模块需要 Node v4.x 或更高版本
  • [#12008 #12140 #12503 #12514 #12584 #12596 #12637 #12660 #12696 #12716 #12750 #12787 #12858] 重构:NativeWindow
  • [#11968] refactor: menu.popup()
  • [#8953] feat: 不再使用 JSON 发送 ipcRenderer.sendSync 的结果
  • [#13039] feat: 默认忽略 URL 后面的命令行参数
  • [#12004] refactor: 将 api::Window 重命名为 api::BrowserWindow
  • [#12679] feat: 视觉缩放默认关闭
  • [#12408] refactor: 将 app-command 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] 修复:加载带有 jquery 的站点时崩溃
  • [#14092] fix: net::ClientSocketHandle 析构函数中的崩溃
  • [#14453] fix: 立即通知焦点更改,而不是在下一个 tick

macOS

  • [#13220] fix: 允许在 <input file="type"> 打开文件对话框中选择 bundle 的问题
  • [#12404] fix: 使用异步对话框时阻止主进程的问题
  • [#12043] fix: 上下文菜单点击回调
  • [#12527] fix: 重用 touchbar 项目时发生的事件泄漏
  • [#12352] fix: 托盘标题崩溃
  • [#12327] fix: 非拖动区域
  • [#12809] fix: 防止在菜单打开时更新菜单
  • [#13162] fix: 托盘图标边界不允许负值
  • [#13085] fix: 托盘标题高亮时未反转
  • [#12196] fix: Mac 构建时 enable_run_as_node==false 的问题
  • [#12157] fix: 无边框窗口配合 vibrancy 时的额外问题
  • [#13326] fix: 在调用 app.removeAsDefaultProtocolClient 后设置 mac 协议为 none
  • [#13530] fix: MAS 构建中私有 API 的不正确使用
  • [#13517] fix: tray.setContextMenu 崩溃
  • [#14205] fix: 按下 escape 键关闭对话框,即使设置了 defaultId

Linux

  • [#12507] fix: BrowserWindow.focus() 对离屏窗口的处理

其他说明

  • PDF 查看器目前无法工作,但我们正在积极修复,并将尽快恢复其功能。
  • TextFieldButton API 仍处于实验阶段,因此默认关闭。
    • 可以通过 enable_view_api 构建标志启用它们。

下一步计划

Electron 团队将继续努力定义更快速、更顺畅的升级流程,以期最终与 Chromium、Node 和 V8 的开发节奏保持一致。

Electron 2.0.0

·7分钟阅读

经过四个多月的开发,八个测试版本,以及全球众多应用的分阶段推广测试,Electron 2.0.0 版本现已在 electronjs.org 发布。


发布流程

从 2.0.0 版本开始,Electron 的发布将遵循语义化版本控制。这意味着主版本号将更频繁地递增,并且通常是 Chromium 的重大更新。补丁版本应该更稳定,因为它们将只包含高优先级的错误修复。

Electron 2.0.0 在主要版本发布前的稳定性改进方面也取得了进展。几款大型 Electron 应用程序已将 2.0.0 beta 版本纳入其灰度发布计划,为 Electron 的 beta 系列提供了有史以来最好的反馈循环。

更改 / 新功能

  • Electron 工具链的多个重要部分进行了重大升级,包括 Chrome 61、Node 8.9.3、V8 6.1.534.41、Linux 上的 GTK+ 3、更新的拼写检查器和 Squirrel。
  • MacOS 现在支持 应用内购买#11292
  • 用于加载文件的新的 API。 #11565
  • 用于启用/禁用窗口的新 API。 #11832
  • 新的 `app.setLocale()` API。 #11469
  • 新增支持日志记录 IPC 消息。 #11880
  • 新的菜单事件。 #11754
  • 向 `powerMonitor` 添加了一个 `shutdown` 事件。 #11417
  • 添加 `affinity` 选项,用于将多个 `BrowserWindow` 集合到单个进程中。 #11501
  • 添加了 `saveDialog` 列出可用扩展名的功能。 #11873
  • 支持其他通知操作 #11647
  • 能够设置 macOS 通知关闭按钮的标题。 #11654
  • 为 `menu.popup(window, callback)` 添加了条件。
  • 触控栏项目的内存改进。 #12527
  • 改进了安全建议清单。
  • 添加应用程序范围的安全范围书签。 #11711
  • 添加了在渲染器进程中设置任意参数的功能。 #11850
  • 为格式选择器添加了辅助视图。 #11873
  • 修复了网络代理竞态条件。 #12053
  • 放弃对 Linux 上的 `mips64el` 架构的支持。Electron 需要 C++14 工具链,但该架构在发布时无法获得。我们希望将来重新添加支持。

API 重大更改

  • 移除了 已弃用的 API,包括
    • 更改了 `menu.popup` 的签名。 #11968
    • 移除了已弃用的 `crashReporter.setExtraParameter` #11972
    • 移除了已弃用的 `webContents.setZoomLevelLimits` 和 `webFrame.setZoomLevelLimits`。 #11974
    • 移除了已弃用的 `clipboard` 方法。 #11973
    • 移除了 `tray.setHighlightMode` 的布尔参数支持。 #11981

Bug 修复

  • 更改为确保 `webContents.isOffscreen()` 始终可用。 #12531
  • 修复了当 DevTools 未分离并获得焦点时 `BrowserWindow.getFocusedWindow()` 的问题。 #12554
  • 修复了在预加载路径包含特殊字符的沙箱渲染器中预加载未加载的问题。 #12643
  • 根据文档修正了 `allowRunningInsecureContent` 的默认值。 #12629
  • 修复了 `nativeImage` 的透明度问题。 #12683
  • 修复了 `Menu.buildFromTemplate` 的问题。 #12703
  • 确认 `menu.popup` 选项是对象。 #12330
  • 消除了新进程创建和上下文释放之间的竞态条件。 #12361
  • 更新了更改 `BrowserView` 时的拖放区域。 #12370
  • 修复了在获得焦点时菜单栏切换 `alt` 键的检测。 #12235
  • 修复了 Webview 中的错误警告。 #12236
  • 修复了从父窗口继承 `show` 选项的问题。 #122444
  • 确保 `getLastCrashReport()` 确实是最后一个崩溃报告。 #12255
  • 修复了在网络共享路径上 `require` 的问题。 #12287
  • 修复了上下文菜单点击回调。 #12170
  • 修复了弹出菜单位置。 #12181
  • 改进了 libuv 循环清理。 #11465
  • 修复了 `hexColorDWORDToRGBA` 处理透明颜色的问题。 #11557
  • 修复了 `getWebPreferences` API 中的空指针解引用问题。 #12245
  • 修复了菜单代理中的循环引用。 #11967
  • 修复了 `net.request` 的协议过滤。 #11657
  • WebFrame.setVisualZoomLevelLimits 现在设置用户代理缩放约束 #12510
  • 为 webview 选项设置了适当的默认值。 #12292
  • 改进了活跃度支持。 #12157 #12171 #11886
  • 修复了单例 fixture 中的计时问题。
  • 修复了 NotifierSupportsActions() 中损坏的生产缓存
  • 使 MenuItem 角色兼容 camelCase。 #11532
  • 改进了触控栏更新。 #11812, #11761
  • 移除了多余的菜单分隔符。 #11827
  • 修复了蓝牙选择器 bug。关闭 #11399
  • 修复了 macOS 全屏切换菜单项标签。 #11633
  • 改进了窗口停用时工具提示的隐藏。 #11644
  • 迁移了已弃用的 web-view 方法。 #11798
  • 修复了从 browserview 打开的窗口的关闭问题。 #11799
  • 修复了蓝牙选择器 bug。 #11492
  • 更新以使用任务调度程序处理 `app.getFileIcon` API。 #11595
  • 更改为即使在屏幕外渲染时也触发 `console-message` 事件。 #11921
  • 修复了使用 `WebContents.downloadURL` 从自定义协议下载的问题。 #11804
  • 修复了透明窗口在开发者工具分离时失去透明度的问题。 #11956
  • 修复了 Electron 应用程序取消重启或关闭的问题。 #11625

macOS

  • 修复了触控栏项目重复使用时的事件泄漏。 #12624
  • 修复了暗黑模式下的托盘高亮显示。 #12398
  • 修复了异步对话框阻塞主进程的问题。 #12407
  • 修复了 `setTitle` 托盘崩溃问题。 #12356
  • 修复了设置 dock 菜单时的崩溃。 #12087

Linux

  • 更好的 Linux 桌面通知。 #12229 #12216 #11965 #11980
  • 对菜单提供更好的 GTK+ 主题支持。 #12331
  • 在 Linux 上优雅退出。 #12139
  • 使用应用程序名称作为托盘图标的默认工具提示。 #12393

Windows

  • 添加了对 Visual Studio 2017 的支持。 #11656
  • 修复了异常传递给系统崩溃处理程序的问题。 #12259
  • 修复了最小化窗口隐藏工具提示的问题。 #11644
  • 修复了 `desktopCapturer` 以捕获正确屏幕的问题。 #11664
  • 修复了 `disableHardwareAcceleration` 与透明度的问题。 #11704

下一步计划

Electron 团队正在努力支持更新版本的 Chromium、Node 和 V8。敬请期待 3.0.0-beta.1!

Electron 2.0 及未来 - 语义化版本

·一分钟阅读

Electron 的新主要版本正在开发中,随之而来的是我们版本控制策略的一些变化。从 2.0.0 版本开始,Electron 将严格遵守语义化版本控制。


这一变化意味着您会更频繁地看到主版本号的更新,并且这通常是对 Chromium 的重大更新。补丁版本也将更加稳定,因为它们现在只包含错误修复,而没有新功能。

主版本号递增

  • Chromium 版本更新
  • Node.js 主版本更新
  • Electron 破坏性 API 更改

次要版本号递增

  • Node.js 次要版本更新
  • Electron 非破坏性 API 更改

补丁版本号递增

  • Node.js 补丁版本更新
  • 与修复相关的 Chromium 补丁
  • Electron 错误修复

由于 Electron 的 semver 范围现在将更有意义,我们建议使用 npm 默认的 --save-dev 标志来安装 Electron,它会在版本号前加上 ^,让您安全地及时更新次要版本和补丁版本。

npm install --save-dev electron

对于仅对错误修复感兴趣的开发者,您应该使用波浪线 semver 前缀,例如 ~2.0.0,它永远不会引入新功能,只进行修复以提高稳定性。

更多详情,请参阅 electronjs.org/docs/tutorial/electron-versioning

Electron 1.0

·阅读时长 4 分钟

在过去的两年里,Electron 帮助开发者使用 HTML、CSS 和 JavaScript 构建跨平台桌面应用。现在,我们很高兴地与大家分享我们框架以及创造它的社区的一个重要里程碑。Electron 1.0 版本现已可在 electronjs.org 上获取。


Electron 1.0

Electron 1.0 代表了 API 稳定性和成熟度方面的一个重要里程碑。此版本允许您构建在 Windows、Mac 和 Linux 上运行并感觉真正原生的应用。借助新的文档、新的工具以及用于引导您了解 Electron API 的新应用,构建 Electron 应用比以往任何时候都更加容易。

如果您已准备好构建您的第一个 Electron 应用程序,这里有一份 快速入门指南 助您开始。

我们很期待看到您接下来用 Electron 构建出什么。

Electron 的发展历程

我们发布 Electron 的时候,正是我们推出 Atom 的两年多前。当时 Electron 尚被称为 Atom Shell,是我们构建 Atom 的框架。在那段日子里,Atom 是 Electron 提供功能的驱动力,我们当时正致力于推出 Atom 的初始版本。

如今,Electron 的发展得益于日益壮大的开发者和公司社区,他们正在构建各种各样的应用,从 邮件聊天Git 应用SQL 分析工具种子客户端机器人

在过去的两年里,我们看到许多公司和开源项目选择 Electron 作为其应用的基础。仅在过去一年中,Electron 的下载量就超过了 120 万次。请参观一些令人惊叹的 Electron 应用,如果您的应用还没有被收录,请添加上去。

Electron downloads

Electron API 演示

伴随 1.0 版本的发布,我们还推出了一款新应用,旨在帮助您探索 Electron API 并进一步了解如何让您的 Electron 应用感觉更原生。 Electron API Demos 应用包含了代码片段,可以帮助您快速启动您的应用,并提供有关有效使用 Electron API 的技巧。

Electron API Demos

Devtron

我们还添加了一个新的扩展,以帮助您调试 Electron 应用。 Devtron 是一个开源的扩展,用于 Chrome Developer Tools,旨在帮助您检查、调试和排除 Electron 应用的故障。

Devtron

功能

  • 依赖图,帮助您在主进程和渲染进程中可视化应用程序的内部和外部库依赖关系
  • IPC 监视器,跟踪和显示应用程序进程之间发送和接收的消息
  • 事件检查器,显示您应用程序中核心 Electron API(如窗口、应用和进程)上注册的事件和监听器
  • 应用 Linter,检查您的应用程序是否存在常见错误和缺失功能

Spectron

最后,我们发布了 Spectron 的新版本,它是 Electron 应用程序的集成测试框架。

Spectron

Spectron 3.0 为整个 Electron API 提供了全面的支持,使您能够更快速地编写测试,以验证您的应用程序在各种场景和环境中的行为。Spectron 基于 ChromeDriverWebDriverIO,因此它还提供用于页面导航、用户输入和 JavaScript 执行的全套 API。

社区

Electron 1.0 是数百名开发人员社区共同努力的成果。除了核心框架之外,还发布了数百个库和工具,以使构建、打包和部署 Electron 应用程序更加容易。

现在有一个新的 社区 页面,列出了许多正在开发的很棒的 Electron 工具、应用、库和框架。您还可以查看 ElectronElectron Userland 组织,了解其中一些出色的项目。

刚接触 Electron?观看 Electron 1.0 介绍视频

Electron 0.37 的新功能

·阅读时长 5 分钟

Electron 0.37 最近已 发布,其中包含从 Chrome 47 到 Chrome 49 的重大升级,以及若干新的核心 API。此最新版本带来了 Chrome 48Chrome 49 中发布的所有新功能。这包括 CSS 自定义属性、增加的 ES6 支持、KeyboardEvent 改进、Promise 改进以及现在您的 Electron 应用中可用的许多其他新功能。


新增内容

CSS 自定义属性

如果您使用过 Sass 和 Less 等预处理器语言,您可能熟悉变量,它允许您为颜色方案和布局等内容定义可重用的值。变量有助于保持您的样式表 DRY(不要重复自己)且更易于维护。

CSS 自定义属性类似于预处理器变量,因为它们是可重用的,但它们还具有一个独特的优势,使其功能更强大、更灵活:它们可以通过 JavaScript 进行操作。这一细微但强大的功能允许动态更改视觉界面,同时仍然受益于 CSS 的硬件加速,并减少前端代码和样式表之间的代码重复。

有关 CSS 自定义属性的更多信息,请参阅 MDN 文章Google Chrome 演示

CSS 变量实战

让我们通过一个简单的变量示例来演示,该示例可以在您的应用中实时调整。

:root {
--awesome-color: #a5ecfa;
}

body {
background-color: var(--awesome-color);
}

变量值可以直接在 JavaScript 中检索和更改

// Get the variable value ' #A5ECFA'
let color = window
.getComputedStyle(document.body)
.getPropertyValue('--awesome-color');

// Set the variable value to 'orange'
document.body.style.setProperty('--awesome-color', 'orange');

变量值也可以从开发工具的样式部分进行编辑,以获得快速反馈和调整

CSS properties in Styles tab

KeyboardEvent.code 属性

Chrome 48 为 KeyboardEvent 事件添加了新的 code 属性,该属性将是按下的物理键,与操作系统键盘布局无关。

这应该能使您的 Electron 应用中自定义键盘快捷键的实现更准确,并在不同机器和配置上更一致。

window.addEventListener('keydown', function (event) {
console.log(`${event.code} was pressed.`);
});

请查看 此示例 了解其实际应用。

Promise 拒绝事件

Chrome 49 添加了两个新的 window 事件,可让您在被拒绝的 Promise 未被处理时收到通知。

window.addEventListener('unhandledrejection', function (event) {
console.log('A rejected promise was unhandled', event.promise, event.reason);
});

window.addEventListener('rejectionhandled', function (event) {
console.log('A rejected promise was handled', event.promise, event.reason);
});

请查看 此示例 了解其实际应用。

V8 中的 ES2015 更新

Electron 中当前版本的 V8 包含 91% 的 ES2015。以下是一些开箱即用的有趣新增功能,无需标志或预编译器即可使用:

默认参数

function multiply(x, y = 1) {
return x * y;
}

multiply(5); // 5

解构赋值

Chrome 49 添加了 解构赋值,使变量和函数参数的赋值更加容易。

现在,Electron 的 require 语句可以更清晰、更简洁地进行赋值

浏览器进程的 require
const { app, BrowserWindow, Menu } = require('electron');
渲染进程的 require
const { dialog, Tray } = require('electron').remote;
其他示例
// Destructuring an array and skipping the second element
const [first, , last] = findAll();

// Destructuring function parameters
function whois({ displayName: displayName, fullName: { firstName: name } }) {
console.log(`${displayName} is ${name}`);
}

let user = {
displayName: 'jdoe',
fullName: {
firstName: 'John',
lastName: 'Doe',
},
};
whois(user); // "jdoe is John"

// Destructuring an object
let { name, avatar } = getUser();

新的 Electron API

以下是一些新的 Electron API,您可以在 Electron 发行说明中查看每个新 API。

BrowserWindow 上的 showhide 事件

当窗口显示或隐藏时会发出这些事件。

const { BrowserWindow } = require('electron');

let window = new BrowserWindow({ width: 500, height: 500 });
window.on('show', function () {
console.log('Window was shown');
});
window.on('hide', function () {
console.log('Window was hidden');
});

OS Xapp 上的 platform-theme-changed

当系统的 深色模式主题切换时会发出此事件。

const { app } = require('electron');

app.on('platform-theme-changed', function () {
console.log(`Platform theme changed. In dark mode? ${app.isDarkMode()}`);
});

OS Xapp.isDarkMode()

如果系统处于深色模式,此方法将返回 true,否则返回 false

OS X 的 BrowserWindow 的 scroll-touch-beginscroll-touch-end 事件

当滚动轮事件阶段开始或结束时会发出这些事件。

const { BrowserWindow } = require('electron');

let window = new BrowserWindow({ width: 500, height: 500 });
window.on('scroll-touch-begin', function () {
console.log('Scroll touch started');
});
window.on('scroll-touch-end', function () {
console.log('Scroll touch ended');
});

Electron 1.0 即将到来的 API 变更

·阅读时长 4 分钟

自 Electron 最初(当时还叫 Atom-Shell)以来,我们就一直在尝试为 Chromium 的内容模块和原生 GUI 组件提供一个不错的跨平台 JavaScript API。API 的设计非常自然,随着时间的推移,我们对最初的设计进行了多次改进。


随着 Electron 准备发布 1.0 版本,我们希望借此机会解决一些遗留的 API 细节问题。以下所述的更改已包含在 **0.35.x** 版本中,旧的 API 将会发出弃用警告,以便您能及时为即将发布的 1.0 版本做好准备。Electron 1.0 版本将在几个月后发布,因此您还有时间来适应这些即将成为破坏性更改。

弃用警告

默认情况下,如果您使用的是已弃用的 API,将会显示警告。要关闭它们,您可以将 process.noDeprecation 设置为 true。要跟踪已弃用 API 的使用来源,您可以将 process.throwDeprecation 设置为 true,使其抛出异常而不是打印警告,或者将 process.traceDeprecation 设置为 true,以打印弃用的堆栈跟踪信息。

使用内置模块的新方式

内置模块现在被分组到一个模块中,而不是分成独立的模块,这样您就可以 在不与其他模块冲突的情况下 使用它们。

var app = require('electron').app;
var BrowserWindow = require('electron').BrowserWindow;

`require('app')` 的旧用法仍然受支持以向后兼容,但您也可以将其关闭。

require('electron').hideInternalModules();
require('app'); // throws error.

使用 `remote` 模块的更简便方法

由于内置模块的使用方式已更改,我们使得在渲染器进程中使用主进程模块更加容易。现在您可以直接访问 `remote` 的属性来使用它们。

// New way.
var app = require('electron').remote.app;
var BrowserWindow = require('electron').remote.BrowserWindow;

而不是使用长串的 `require` 调用。

// Old way.
var app = require('electron').remote.require('app');
var BrowserWindow = require('electron').remote.require('BrowserWindow');

拆分 `ipc` 模块

ipc 模块同时存在于主进程和渲染器进程中,并且每个进程的 API 都不同,这让新用户感到非常困惑。我们已将主进程中的模块重命名为 ipcMain,将渲染器进程中的模块重命名为 ipcRenderer,以避免混淆。

// In main process.
var ipcMain = require('electron').ipcMain;
// In renderer process.
var ipcRenderer = require('electron').ipcRenderer;

对于 `ipcRenderer` 模块,在接收消息时添加了一个额外的 `event` 对象,以匹配 `ipcMain` 模块中消息的处理方式。

ipcRenderer.on('message', function (event) {
console.log(event);
});

标准化 `BrowserWindow` 选项

`BrowserWindow` 选项的风格因其他 API 的选项而异,并且由于名称中的 `-`,在 JavaScript 中使用起来有点困难。现在它们已标准化为传统的 JavaScript 名称。

new BrowserWindow({ minWidth: 800, minHeight: 600 });

遵循 DOM 的 API 名称约定

Electron 中的 API 名称以前倾向于对所有 API 名称使用驼峰式命名法,例如 UrlURL,但 DOM 有其自己的约定,偏好 URL 而不是 Url,同时使用 Id 而不是 ID。我们已进行以下 API 重命名,以匹配 DOM 的风格。

  • `Url` 已重命名为 `URL`
  • `Csp` 已重命名为 `CSP`

由于这些更改,您在使用 Electron v0.35.0 构建应用程序时会注意到大量弃用警告。解决这些问题的一个简单方法是将所有 `Url` 实例替换为 `URL`。

`Tray` 事件名称的更改

`Tray` 事件名称的风格与其他模块略有不同,因此已进行重命名以使其与其他模块保持一致。

  • `clicked` 已重命名为 `click`
  • `double-clicked` 已重命名为 `double-click`
  • `right-clicked` 已重命名为 `right-click`

Electron 新功能

·阅读时长 4 分钟

最近,Electron 迎来了一些有趣的更新和演讲,这里为您做一个汇总。


来源

截至 v0.32.0,Electron 已更新至 Chrome 45。其他更新包括...

更好的文档

new docs

我们对文档进行了重构和标准化,使其看起来和阅读起来都更好。此外,还有社区贡献的文档翻译,例如日语和韩语。

相关拉取请求: electron/electron#2028, electron/electron#2533, electron/electron#2557, electron/electron#2709, electron/electron#2725, electron/electron#2698, electron/electron#2649

Node.js 4.1.0

v0.33.0 起,Electron 搭载 Node.js 4.1.0。

相关拉取请求: electron/electron#2817

node-pre-gyp

现在,依赖 node-pre-gyp 的模块在从源代码构建时可以 against Electron 编译。

相关拉取请求: mapbox/node-pre-gyp#175

ARM 支持

Electron 现在为 ARMv7 上的 Linux 提供构建。它可在 Chromebook 和 Raspberry Pi 2 等流行平台上运行。

相关问题: atom/libchromiumcontent#138, electron/electron#2094, electron/electron#366

Yosemite 风格无边框窗口

frameless window

已合并由 @jaanus 提交的补丁,该补丁允许在 OS X Yosemite 及更高版本上创建无边框窗口,并集成系统流量灯,就像其他内置的 OS X 应用程序一样。

相关拉取请求: electron/electron#2776

Google Summer of Code 打印支持

在 Google Summer of Code 之后,我们合并了 @hokein 的补丁,以改进打印支持,并增加了将页面打印成 PDF 文件的功能。

相关问题: electron/electron#2677, electron/electron#1935, electron/electron#1532, electron/electron#805, electron/electron#1669, electron/electron#1835

Atom

Atom 已升级到 Electron v0.30.6,运行 Chrome 44。目前正在 atom/atom#8779 上进行升级到 v0.33.0 的工作。

演讲

GitHub 用户 Amy PalamountainNordic.js 的演讲中对 Electron 进行了精彩的介绍。她还创建了 electron-accelerator 库。

使用 Electron 构建原生应用程序(作者:Amy Palomountain)

同样来自 Atom 团队的 Ben OgleYAPC Asia 上发表了关于 Electron 的演讲

使用 Web 技术构建桌面应用(作者:Ben Ogle)

Atom 团队成员 Kevin Sawicki 等人在最近的 Bay Area Electron 用户群 会议上发表了关于 Electron 的演讲。演讲的 视频 已经发布,这里是其中几个。

Electron 的历史,作者:Kevin Sawicki

让 Web 应用感觉像原生应用,作者:Ben Gotow