GUI开发工具集-Electron
2023-05-04 12:56:15 阿炯

Electron(原名为Atom Shell)是GitHub开发的一个开源框架。它通过使用Node.js(作为后端)和Chromium的渲染引擎(作为前端)完成跨平台的桌面GUI应用程序的开发。Electron现已被多个开源Web应用程序用于前端与后端的开发,著名项目包括GitHub的Atom和微软的Visual Studio Code。其主体在MIT协议下授权。


Build cross-platform desktop apps with JavaScript, HTML, and CSS.

Electron是基于 Web 技术构建跨平台桌面端框架,也叫做 GUI 程序,即Electron = Chromium + Node.js + Native APIs。

一个基础的Electron包含三个文件:package.json(元数据)、main.js(代码)和index.html(图形用户界面)。框架由Electron可执行文件(Windows中为electron.exe、macOS中为electron.app、Linux中为electron)提供。开发者可以自行添加标志、自定义图标、重命名或编辑Electron可执行文件。

2013年4月11日,Electron以Atom Shell为名起步。
2014年5月6日,Atom以及Atom Shell以MIT许可证开源。
2015年4月17日,Atom Shell改名为Electron。
2016年5月11日,1.0版本发布。
2016年5月20日,允许向Mac应用商店提交软件包。
2016年8月2日,支持Windows商店。

由于其紧跟版本帝Chromium的脚本,因此更新非常频繁。

桌面软件(办公、个人工具),仍然是未来十几年 PC 端需求之一,Electron 技术是流行趋势,入门简单(JavaScript+CSS的网页开发基础)、跨平台、开源免费、工程化、安全等特性,国内有如QQ、百度翻译、阿里网盘、迅雷、有道云笔记 ...... 等相关软件基于此开发或已经迁移到该框架。其发展动态可参考《Electron发展记事(202x)》。


最新版本:30
v30.0.0于2024年4月中旬发布,更新内容如下:
Chromium 124.0.6367.49
Node 20.11.1
V8 12.4

添加了 WebContentsView 和 BaseWindow,替换了现已弃用的 BrowserViewAPI。
为 ASAR Integrity Integrity fuse 添加了 Windows 支持。
将 Chromium 更新为 122.0.6194.0(Behavior Changed:cross-origin iframe 现在使用权限策略来访问功能)
将 Chromium 更新为 122.0.6236.2(已删除:--disable-color- Correct-rendering 开关)
context-menuparams 中的 inputFieldType 属性已被删除。
将 Chromium 更新为 124.0.6323.0(已删除:process.getIOCounters ())

向网络视图添加了 transparent 网络首选项。
为 webContents API 添加了一个新的实例属性 navigationHistory,其中包含 navigationHistory.getEntryAtIndex 方法,可让应用程序检索浏览历史中任何导航条目的 URL 和标题。
添加了一种新方法 BrowserWindow.isOccluded() 以允许应用程序检查闭塞状态。
将 net 模块添加到实用程序进程中。
添加了对实用程序进程中使用 net 模块发出的请求的代理配置支持。
添加了对通过 navigator.serial 中的服务类 ID 请求蓝牙端口的支持。
添加了对 NODE_EXTRA_CA_CERTS 的支持。
实现了对文件系统 API 的支持。

删除/弃用:从 Windows zip 文件中删除了无关的 dll。

修复了 BrowserViews 默认为白色而不是透明的问题。#40866
修复了在调用 loadURL() 失败后立即调用 WebContents.loadURL() 时不正确地导致失败的问题。#40661
修复了禁用最大化并启用 WCO 的窗口仍会显示其最大化按钮的错误。#41805
修复了清理关联的 WebContents 后关闭 WebContentsView 或与之交互可能出现的崩溃问题。#41154
修复了 app.getLoginItemSettings 未正确抛出错误的问题。 #41667
修复了 BrowserWindow 中的子视图有时可能出现的问题。#41802
修复了在 Mac 上显示或聚焦面板窗口会激活应用程序的问题。#41844
改进了使用 Windows Control Overlay 时 Windows 11 上的标题按钮的外观。#41586
在加载无效 URL 时正确拒绝 webcontents.loadURL promise。#41194

终止对 27.xy 的支持
根据项目的支持政策,Electron 27.xy 已结束支持。鼓励开发人员和应用程序升级到较新版本的 Electron。

更多详情可查看发行说明


官方主页:https://www.electronjs.org/