Electron跨平台桌面应用开发工具

跳转至下载链接

Electron跨平台桌面应用开发工具 v14.2.2界面预览
  • 软件作者: 不详
  • 软件大小: 10.70MB
  • 软件类别: 国外软件 | 开发框架
  • 软件语言: 多国语言
  • 运行环境: C/C++
  • 软件评级: 3星级
  • 更新时间: 2021/12/2 14:39:20
  • 软件授权: 开源软件
  • 插件情况:
  • 相关链接: Home Page
  • 演示地址: 暂无

软件介绍

Electron 14是一个跨平台的桌面应用开发工具,支持Web技术开发桌面应用,其本身是基于C++开发的,GUI核心来自于Chrome,而JavaScript引擎使用v8。

Electron 的优势:
Electron 基于 Web 技术开发桌面应用。Web 技术是现如今软件开发领域应用最广泛的技术之一,入门门槛非常低,周边生态繁荣而且历史悠久。
1) Electron 开发效率高
相较于基于 C++ 库开发桌面软件来说,基于 Electron 开发更容易上手且开发效率更高。由于 JavaScript 语言是一门解释执行的语言,所以 C++ 语言固有的各种问题都不再是问题,比如:
C++ 没有垃圾回收机制,开发人员要小心翼翼地控制内存,以免造成内存泄漏;
C++ 语言特性繁多且复杂,学习难度曲线陡峭,需要针对不同平台进行编译,应用分发困难。
使用 Electron 开发桌面应用就不用担心这些问题。
2) Electron 执行效率高
在执行效率上,如果前端代码写得足够优秀,Electron 应用完全可以做出与 C++ 应用相媲美的用户体验,Visual Studio Code 就是先例。
另外,Node.js 本身也可以很方便地调用 C++ 扩展,Electron 应用内又包含 Node.js 环境,对于一些音视频编解码或图形图像处理需求,可以使用 Node.js 的 C++ 扩展来完成。
3) Electron 立足于 JavaScript 生态
随着 Web 应用大行其道,Web 前端开发领域的技术生态足够繁荣。Electron 可以使用几乎所有的 Web 前端生态领域及 Node.js 生态领域的组件和技术方案。截至本文发布时,发布到 npmjs.com 平台上的模块已经超过 90 万个,覆盖领域广,优秀模块繁多且使用非常简单方便。
4) 无需考虑兼容性问题
在完成 Web 前端开发工作时,开发者需要考虑很多浏览器兼容的问题,比如:用户是否使用了低版本的 IE 浏览器,是否可以在样式表内使用 Flexbox(弹性盒模型)等。这些问题最终会导致前端开发者束手束脚,写出一些丑陋的兼容代码以保证自己的应用能在所有终端表现正常。
但由于 Electron 内置了 Chromium 浏览器,该浏览器对标准支持非常好,甚至支持一些尚未通过的标准,所以基于 Electron 开发应用不会遇到兼容问题。开发者的自由度得到了最大化保护,你可以在 Electron 中使用几乎所有 HTML5、CSS3、ES6 标准中定义的 API。
5) Electron 可以使用操作系统接口
另外,Web 前端受限访问的文件系统、系统托盘、系统通知等,在 Electron 技术体系下均有 API 供开发者自由使用。

Electron v14 发行说明
特征
添加
添加BrowserWindow.isFocusable()用于确定窗口是否可聚焦。
添加了WebFrameMain.visibilityState实例属性。
添加disposition,referrer和postBody传递给已注册的窗口打开处理程序的详细信息对象setWindowOpenHandler。
process.contextId由 使用添加@electron/remote。
在Electron Fuse后面添加了实验性 cookie 加密支持。
resourceType为webRequest侦听器详细信息添加了缺失的转换:font、ping、cspReport、media、webSocket。
添加了新的session.storagePathAPI 以获取磁盘上会话特定数据的路径。
添加webContents.fromDevToolsTargetId(targetId)以从关联的 Chrome DevTools 协议 TargetID 中查找 WebContents 实例。
添加了对 macOS 上的 Windows 控制覆盖的支持。
在 Windows 上添加了对 Windows 控制覆盖的支持。
添加了对调试 URL 的支持,例如chrome://gpucrash. 
添加了对将 Chromium 日志记录到带有--log-file=.../path/to/file.log. 此外,现在可以通过在第一个 JS 滴答期间附加命令行开关来启用 JavaScript 的日志记录。
在节点加密中添加了对 des-ede3 密码的支持。
添加ContextBridgeMutability跳过上下文桥DeepFreeze和SetReadOnlyNonConfigurable暴露值的功能。

改进
改进了通过 contextBridge 来回发送的函数的性能特征。
改进了napi_threadsafe_function. 

删除/弃用
子窗口不再从其父窗口继承 BrowserWindow 构造选项。
删除过时additionalFeatures的财产new-window和did-create-windowWebContents事件。
删除了弃用app.allowRendererProcessReuse和 BrowserWindowaffinity选项。
在submitURL供选择crashReporter.start不再是一个必要的参数时,uploadToServer是假的。

修复
允许 Node.js 在调用之前使用显式微任务策略管理微任务队列uv_run()。
允许从自定义协议和 asar 包加载源映射。
具有指定背景颜色或透明度的子窗口现在可以按预期工作。
从返回的颜色systemPreferences.getAccentColor(),getSystemColor并且getColor现在被正确地转换成设备的色彩空间。以前,颜色会微妙地不正确。
电子保险丝现在跨平台的顺序一致。
修复了fs.promises.readFile将 a 传递FileHandle给path 参数时会错误地出错的问题。
固定 CORS 预检请求在通过代理连接时总是被取消,要求对已注册 WebRequest 侦听器的应用程序进行身份验证。
固定<webview> focus/blur事件不工作contextIsolation启用。
固定的desktopCapturer.getSources()承诺结果有时永远不会解决。
修复documentEdited了 macOS 上无框窗口的状态不更新关闭按钮的问题。
修复postData了new-window事件中缺少的参数。
固定requestFullscreen在 webview 内不会使元素全屏显示。
固定select-bluetooth-device在 Windows 上触发。
修复了webFrame在沙盒渲染器中调用时拼写检查器 API 崩溃的问题。
固定will-resize和will-move事件未将发出的newBounds矩形缩放到适当的 Windows 显示比例因子。
修复了当 JumpList 任务描述超过 260 个字符时,尽管输入有效,但 JumpList 为空的错误。
修复了SharedArrayBuffer禁用时 repl 中的崩溃。
修复了process.exit调用并nativeWindowOpen启用时的崩溃。
修复了shell.trashItem()从渲染器进程调用时的崩溃。
修复了webContents.on('login')同步调用回调时崩溃的问题。
修复了拼写检查器方法在 Windows 上返回空建议列表的功能标志问题。
修复了拒绝window.open使用setWindowOpenHandlerwhen 时挂起的问题nativeWindowOpen: false。
修复了setCertificateVerifyProc与许多并发验证请求一起使用时可能发生的网络进程崩溃。
修复了 Windows 上的可拖动区域可能发生的崩溃。
修复了调用app.quit()macOS时潜在的崩溃问题。
修复了在 macOS 上设置活力时潜在的崩溃问题。
修复了 Mac 上应用程序无法使用桌面捕获或 getMediaSourceId API 捕获其自己的窗口的问题。
修复了 Windows 上出现空控制台窗口时--enable-logging出现的问题。
修正了存在的问题webView,其中leave-html-full-screen,如果用户退出全屏的未发出的事件esc,而不是通过点击进入webView。
修复了BrowserViews当x或y坐标为负(屏幕外)时背景颜色无法正确应用于Windows的问题。
修复了 BrowserWindows 无法正确尊重transparency: true或backgroundColor在其构造函数选项中设置的问题。
修复了 Electron 有时不支持用户定义的下载目录的问题。
修复了BrowserView在某些情况下 webContents 似乎无法加载的问题。
修复了在s中beforeunload和unload没有正确触发的问题BrowserView。
修复了启用illegal access error时可能抛出的问题nodeIntegrationInSubFrames。
修复了select-serial-port使用无效的串行端口 ID 调用时回调崩溃的问题。
修复了self.module.paths在 Workers 中不起作用的问题。
修复了 TouchBarScrubber 在showArrowButtons启用时如果items是空数组会崩溃的问题。
修复了documentEdited在 macOS上切换状态时titlebarStyle: 'hiddenInset'无意中移动了交通灯位置的问题。
修复了在某些平台上win.capturePage()调用hide()隐藏窗口后从未回调的问题。
修复了window.print()从 pdf 插件打印 pdf 时无法正常工作的问题。
修复了在 macOS 上最大化窗口时指定的纵横比可能不正确的问题。
修复了自定义交通灯可能被 macOS 上的 BrowserViews 覆盖的问题。
修复了未设置拖动区域时 macOS 上的拖动区域偏移不正确的问题。
修复了当 DevTools 打开时可拖动区域有时无法正常工作的问题。
修复了下拉菜单在启用时在 DevTools 中不起作用的问题contextIsolation。
修复了传递的函数中抛出的错误contextBridge可能无法正确显示的问题。
修复了没有背景页面的扩展可能无法访问文件的问题。
修复了多次调用window.setFullScreen可能导致问题的问题。
修复了如果可选的“requestHeaders”参数未包含在 webRequest.onBeforeSendHeaders 回调响应对象中时请求标头被清除的问题。
修复了在 devtools 控制台中右键单击会引发错误的问题。
修复了某些 Node.js 模块在 Windows 上重新加载页面时挂起的问题。
修复了某些对话框window.hide()在打开时被调用时会停止在 macOS 上工作的问题。
修复了setAlwaysOnTop有时不会为 macOS 上的子窗口保留值的问题。
修复了 macOS 上 BrowserViews 中的拖动区域可能在其 y 轴上关闭的问题。
修复了拇指win.hide()在 Windows 上消失的问题。
修复了在退出全屏并BrowserView在 macOS 上添加 a 时,交通灯会被重复绘制的问题。
修复了未打包应用中用户数据目录不正确的问题。#30142
修复了 void 函数Menu.setApplicationMenu在某些平台上返回值的问题。
修复了当用户尝试退出并显示消息框时无法关闭窗口的问题。
修复了simpleFullscreen显示指标更改时模式中的窗口无法正确调整大小的问题。
修复了在 Windows 上加载 PDF 的问题,其中元数据未正确加载并导致 PDF 加载为空白页面。
修复app.getPath('logs')了在 Linux 和 Windows 上返回错误路径的问题。
修复了导致在无框窗口中无法处理鼠标点击的仅限测试版的错误。
修复了靠近屏幕边缘时上下文菜单未正确定位的问题。
修复了 macOS 11 中活力视图的角半径。
修复了事件发射器内发生异常时的崩溃。
修复了在getBackgroundColor没有指定背景颜色的透明窗口上调用时崩溃的问题。
修复了target=_blank从 webview单击链接时崩溃的问题。
修复了由微任务策略不匹配导致的调试版本崩溃。
修复了最新一代 Intel 和 Ryzen 处理器的崩溃问题。
修复了在 macOSGeolocation上使用时崩溃的问题。
修复了禁用 Web 安全时无法请求 file:// 资源的问题。
修复了 macOS 11 上交通灯位置错误的无框窗口。
修复了当 BrowserWindow 不可调整大小时悬停状态未清除的错误。
修复了document.focus在 macOS 上打开多个窗口时的错误值。
修复了一段时间后来自 asar 文件的密集 I/O 导致 ERR_FILE_NOT_FOUND。
修复了提示打开时更新权限提示会导致 100% CPU 旋转的问题。
打开面板或使用自定义窗口切换器时,修复了 Mac 上的关键窗口状态。
修复globalShortcut了 macOS 上的媒体键s。
修复了在 macOS 上创建通知时的内存泄漏。
修复了从渲染器请求 ASAR 存档中的文件时的内存泄漏。
修复了 Service Worker 中针对使用注册协议的请求丢失的 'fetch' 事件。
在 Windows 上使用 AsyncCleanupHooks 修复了本机模块编译。
修复了在 nativeWindowOpen 下没有导航条目的子窗口上不会更新页面标题的问题。
修复了阻止 PDF 查看器显示的权限问题。
修复了使用interceptHttpProtocol/registerHttpProtocol 时管道响应数据的潜在损坏问题。
修复了用鼠标点击按下 Alt 会导致切换菜单栏的问题。
修复了按下 ESC 不会从webview. 
修复了在 KDE 上按下Alt+Shift和Alt+Ctrl切换菜单栏的问题。
修复了 UpdateDraggableRegions 中罕见的崩溃问题。
修复了初始化内部 PDF 扩展时罕见的崩溃。
修复了自定义协议中位置之间的重定向。
修复了使用“select-client-certificate”事件回调发送中间证书的问题。
修复了 Service Worker 不使用自定义协议的问题。
修复了在菜单加速器中改变的移位字符。
修复了在禁用 LogJsConsoleMessages 功能时仍将某些控制台消息打印到日志的问题。
在 Windows 32 位版本上修复了 v8 中的堆栈溢出崩溃。
修复了 systemPreferences.getSystemColor 返回缺少 alpha 值的颜色。
修复了当“证书错误”处理程序允许错误通过时不发出“did-fail-load”事件。
修复了<select>Windows 或 Linux 上未出现的元素下拉列表。
修复了在 DevTools 中不工作的颜色选择吸管。
修复了setWindowOpenHandler在单击中键或按住 shift 单击链接时未调用的处理程序集。
修复了在 macOS 上使用活力和使无框窗口全屏时出现不正确视觉伪影的可能性。
修复了使用 webRequest 模块时“Content-Disposition”标头中“attachment”的拼写。
修复了在最后一个 BrowserWindow 仍在关闭过程中时发出的 window-all-closed 事件。
修复了在简单全屏模式下显示的标题栏。
如果指定了字体类型,则修复了托盘.setTitle 不尊重 ANSI 颜色的问题。
修复了在 Apple Silicon 上使用自定义 v8 快照的问题。
修复了使用来自 Electron 服务工作者的 navigator.setAppBadge 和 navigator.clearAppBadge 的问题。
修复了在 macOS 上同时使用 vibrancy 和 titleBarStyle 导致奇怪的窗口阴影的问题。
打开自定义文件/ URL 时不再在 default-app 中设置 backgroundColor。
恢复了app.setAppUserModelId.
支持wasm-evalcsp 后面的WebAssemblyCSP标志。
使用 Windows 系统菜单或双击标题栏无法最大化透明窗口。
传递到shell.openExternalWindows 上的 URL 现在正确地进行了 URI 编码。这已经发生在 macOS 和 Linux 上。

其他变化
1216190 的反向移植 修复。
重构<webview>usingcontextBridge以使其在contextIsolation启用时使用更安全。
更新了默认 Electron 菜单中的社区讨论链接。
Web Serial API 不再是实验性的。
Tags: Electron   Electron14   跨平台桌面应用开发工具  

页面截图展示

上一张
 
下一张