跳到主要内容

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

关于新的 Electron 版本的博客文章

查看所有标签

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 名称使用 camelCase,例如 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 中的新特性

·阅读 2 分钟

最近 Electron 上出现了一些有趣的更新和演讲,这里是一个总结。


来源

截至 v0.32.0,Electron 现在已与 Chrome 45 同步更新。其他更新包括...

更好的文档

new docs

我们已经重组和标准化了文档,使其看起来更好,阅读起来也更好。还有社区贡献的文档翻译,例如日语和韩语。

相关拉取请求:electron/electron#2028electron/electron#2533electron/electron#2557electron/electron#2709electron/electron#2725electron/electron#2698electron/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 的模块现在可以在从源代码构建时针对 Electron 进行编译。

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

ARM 支持

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

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

Yosemite 风格无边框窗口

frameless window

@jaanus 的补丁已合并,与其他的内置 OS X 应用程序一样,允许在 OS X Yosemite 及更高版本上创建带有集成的系统指示灯的无边框窗口。

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

Google Summer of Code 打印支持

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

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

Atom

Atom 现在已升级到 Electron v0.30.6,运行 Chrome 44。正在 atom/atom#8779 上进行升级到 v0.33.0 的过程。

演讲

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

Amy Palomountain 使用 Electron 构建原生应用程序

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

Ben Ogle 使用 Web 技术构建桌面应用程序

Atom 团队成员 Kevin Sawicki 和其他人在最近的 Bay Are Electron 用户组聚会上发表了关于 Electron 的演讲。 这些视频已经发布,这里有几个:

Kevin Sawicki 的 Electron 历史

Ben Gotow 让 Web 应用程序感觉像原生应用程序