首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用JS开发跨平台桌面应用,从原理到实践

3.3 系统API 为了提供原生系统GUI支持,Electron内置了原生应用程序接口,对调用一些系统功能,如调用系统通知、打开系统文件夹提供支持。...4.3 进程通信 主进程渲染进程虽然拥有不同职责,然是他们也需要相互协作,互相通讯。 例如:在web页面管理原生GUI资源是很危险,会很容易泄露资源。...4.8 渲染进程间通信 Electron并没有提供渲染进程之间相互通信方式,我们可以在主进程中建立一个消息中转站。...使用Menu静态方法setApplicationMenu,可创建一个应用程序菜单,在 Windows Linux 上,menu将被设置为每个窗口顶层菜单。...并且有两种对象可以调用打印: 通过windowwebcontent对象,使用此种方式需要单独开出一个打印窗口,可以将该窗口隐藏,但是通信调用相对复杂。

6.9K50

Electron 快速入门,顺便聊聊 IPC 通信

Electron 官网只有一句简单的话: 使用 JavaScript,HTML CSS 构建跨平台桌面应用程序。...除此之前,Electron 还有其他一些特性: 基于 Chromium Node.js 兼容 Mac、Windows Linux,可以构建出三个平台应用程序 2....关闭所有窗口时退出应用(Windows & Linux) 在 Windows Linux 上,关闭所有窗口通常会完全退出一个应用程序。 ...应用生命周期:主进程可以使用 Electron 提供 app 模块来控制应用程序生命周期。 原生 API:Electron 有着多种控制原生桌面功能模块,例如菜单、对话框以及托盘图标。...当在主进程中使用时,它处理从渲染器进程(网页)发送出来异步同步信息。从渲染器进程发送消息将被发送到该模块。

1.3K10
您找到你想要的搜索结果了吗?
是的
没有找到

Electron快速上手并将网站直接生成桌面应用

介绍 使用 JavaScript,HTML CSS 构建跨平台桌面应用程序 基于 Chromium Node.js 让你可以使用 HTML, CSS JavaScript 构建应用.../electron/ 打包 注意:图标格式 Windows使用 icon.ico Mac 使用是 icon.icns 使用electron-forge 安装 npm install --save-dev.../** * 优化加载方式 当页面在窗口中直接加载时,用户会看到未完成页面, * 这不是一个好原生应用体验,使用此事件后显示窗口将没有视觉闪烁 */ win.on('ready-to-show...优缺点 优点 原生接口(菜单、消息提醒、系统托盘等)。...两者都可以做到服务端异步更新 交互 Electron可以调用原生接口 ElectronFlutter 上手难度 Electron:会基础HTML、CSS、JS即可 Flutter:需学习Dart语言

2.4K122

微软 VSCode IDE 源码分析揭秘

Electron 是一个使用 JavaScript, HTML CSS 等 Web 技术创建原生程序框架,它负责比较难搞部分,你只需把精力放在你应用核心上即可 (Electron =...,菜单栏利用 electron 实现桌面程序 核心环境 整个项目完全使用 typescript 实现,electron 中运行主进程渲染进程,使用 api 有所不同,所以在 core 中每个目录组织也是按照使用...);     } } openFirstWindow 主要实现 CodeApplication.openFirstWindow 首次开启窗口时,创建 Electron IPC,使主进程渲染进程间通信...注入Electron IPC Service, windows窗口管理,菜单栏等服务         // 2. ...窗口是通过 main 文件里主进程调用叫 BrowserWindow 模块创建。 主进程与渲染进程之间通信electron 中,主进程与渲染进程有很多通信方法。

2.7K20

IM跨平台技术学习(七):得物基于Electron开发客服IM桌面端技术实践

IM消息全文检索技术实践》《IM跨平台技术学习(七):得物基于Electron开发客服IM桌面端技术实践》(* 本文)三、业务背景随着公司业务快速发展,商家客服也纳入了我们服务范围,商家客服工作台定位是通过工具和数据服务商家...通过工具运营策略协助商家提升服务品质,让品牌商家有动力运营好潜在客户,从而达到提升用户服务目标。已有web端聊天系统前提下,商家客服为什么要迁移桌面应用?...,比如path、fs、crypto 这些模块,甚至能集成C++); 3)Native APIs:Native API让Electron有了跨平台桌面端原生能力(比如说它有统一原生界面,窗口、托盘这些...五、技术实现5.1、项目架构首先介绍下Electron框架里面两个重要概念主进程渲染进程。 1)主进程:主要负责创建和管理BrowserWindow实例以及应用程序事件。...preload.js(在初始化窗口时候引入):5.2.1.3)通信同步异步问题:**异步:**渲染进程->发送->主进程**同步:**渲染进程->发送->主进程5.2.2菜单模块主要是调用Electron

79421

electron 踩坑总结

总结一下最近 electron 开发遇到问题一些重要知识点。 简介 如果你可以建一个网站,你就可以建一个桌面应用程序。...Electron 是一个使用 JavaScript, HTML CSS 等 Web 技术创建原生程序开源框架,它负责比较难搞部分,你只需把精力放在你应用核心上即可。...,不能直接访问操作系统,需要通信到主线程,在通过主线程操作访问操作形态,一个 BrowserWindow 实例即为一个渲染进程 技术栈 electron 整合了 Node 浏览器所有能力,可以随意发挥这些技术栈特点.../mirrors/electron/ remote 不要频繁使用 remote, 更多应该手动进行主进程之间通信。...手动关闭窗口 当自定义关闭时,使用 mainWindow.destroy() 来关闭窗口,因为使用 mainWindow.close() 时,windows 系统打开开发者工具时会出现无法关闭窗口情况

2.1K40

仅仅过去 4 年,微软最终放弃了它!

据悉,在 Windows 11 中,用户可以通过文字、聊天、语音或视频与联系人即时连接,无论他们使用Windows、Android 还是 iOS。...对方即使没有下载 Teams 应用程序,双方也可以通过双向短信联系。Windows 11 还支持立即静音取消静音,或者直接从任务栏开始呈现 Teams。...如果其他应用程序服务需要系统内存,Chromium 就会将空间移交给这些进程。如此一来,内存容量较小低端计算机也能带来不错性能表现。...WebView2 更像是一种类似于应用窗口控件,专门用于渲染 Web 页面。...所以要想将 Teams 规模应用程序过渡至 WebView2,开发团队需要对大量由 Electron 提供抽象进行重写。因此,Teams 在本质上将变得更接近于原生 Windows 应用程序

2.6K10

Electron是什么以及可以做什么

窗口内加载页面就是开发者要实现渲染进程逻辑,我们可以让渲染进程与主进程通信,他们之间是通过 IPC 消息管道进行通信。...虽然有一些特殊手段让两个渲染进程直接通信(后面的章节我们会介绍),但大部分时候还是通过主进程来中转消息以达到渲染进程间通信目的。...Electron 提供一系列内置模块大部分是专门为主进程逻辑服务,比如 app 模块、BrowserWindow 模块 session 模块等,少量模块是专门为渲染进程逻辑服务,比如 ipcRenderer...内使用 JavaScript 来实现这些需求,而应该使用 Node.js 原生模块来实现这些需求。...除了以上这些问题外,Electron 还不支持老版本 Windows 操作系统,比如 Windows XP,在中国还有一些用户是使用 Windows XP ,开发者如果需要面向这些用户,应该考虑使用其他技术方案了

3K30

第一章 Electron介绍 | Electron in Action(中译)

使用Electron,您可以使用作为Web开发人员现有技能来构建具有原生桌面应用许多功能应用程序。...在本书中,您将学习如何构建使用Windows,macOSLinux上本机操作系统API应用程序Electron将ChromiumNode.js合并到同一个运行环境中。...流行消息传递应用程序-Slack,在其WindowsLinux版本中使用Electron。Nylas为其N1电子邮件客户端使用Electron,在所有主要平台上此客户端看起来都很漂亮。...构建web应用程序需要精心设计服务器端之间通信应用程序潜在数千个客户端应用程序实例。客户端代码运行在用户web浏览器中——远离服务器。...NW.js应用程序从HTML页面启动,每个浏览器窗口共享一个Node 进程。如果打开多个窗口,它们都共享同一个Node进程。Electron将Node浏览器进程分开。

3.5K30

干货 | Electron在DevTools中探索与实践

引言 目前,主流桌面应用开发方法有几种,一是使用纯Native技术栈进行开发,比如说Windows使用C++,Mac上使用Objective-C。...目前Electron支持平台有Mac, Windows Linux。 1.1 Quick Start 先来看一下如何使用Electron快速构建一个桌面应用,目录结构如下图所示: ?...1.2 Electron工作机制 之所以可以使用web技术构建桌面应用,其实是因为Electron做了一个整合,它集成了ChromiumNode.js,同时提供了一系列可以操作原生GUIAPI。...1.4 通信Electron中,应用级别的活动以及原生GUI模块只能在主进程中运行,渲染进程则主要负责界面展示。这时候就需要解决主进程渲染进程之间通信问题。...基于这样机制,可以看出,虽然是在两个进程中,但是完全可以把remote取回对象当作是对主进程中这个对象引用,因为我们获取到值总是主进程中一致,而使用ipc通信,其实是对数据进行了序列化反序列化

2.4K31

得物商家客服桌面端Electron技术实践

Native APIs:Native API让Electron有了跨平台桌面端原生能力,比如说它有统一原生界面,窗口、托盘这些。...3.技术实现3.1 项目架构首先介绍下Electron框架里面两个重要概念主进程渲染进程。主进程:主要负责创建和管理BrowserWindow实例以及应用程序事件。...渲染进程:渲染过程负责运行应用程序用户界面,渲染进程中提供了所有DOM API,Node.js APIElectron API子集。...主进程到渲染进程通信:渲染进程到主进程通信:有两种方案,一种是在主进程开启了nodeIntegration: true之后在渲染进程里面可以使用window.require('Electron')来引入写通信相关代码一种是需要在主进程编写...preload.js,在初始化窗口时候引入通信同步异步问题【异步】渲染进程->发送->主进程【同步】渲染进程->发送->主进程3.2.2 菜单模块主要是调用Electron框架本身API,满足快速扩展菜单功能以及自定义菜单功能

1.1K30

第四章-使用本机文件对话框帮助进程间沟通 | Electron实战

本章主要内容: 使用Electrondialog模块实现一个本机打开文件对话框 促进主进程渲染器进程之间通信 将功能从主进程暴露给渲染器进程 使用Electronremote模块从主进程导入功能到渲染器进程...图4.8 在macOS中,打开文件对话框现在从菜单标题栏下拉,而不是作为应用程序窗口前面的附加窗口出现。 ---- 促进进程间通信 我们已经编写了用于在主进程中选择读取文件所有代码。...服务端代码在我们计算机上运行,它可以访问数据库,它可以写入我们系统上日志文件。 在传统web应用程序中,我们通常使用HTTP之类协议来促进客户机和服务端进程之间通信。...我们不使用HTTP在进程之间通信。相反,Electron提供了几个模块来协调主进程渲染进程之间通信。...最近,出现了WebSocketsWebRTC等协议,它们允许客户机和服务器之间双向通信,甚至客户机之间通信,而不需要中央服务器来促进通信

1.9K20

得物商家客服桌面端Electron技术实践

通过工具运营策略协助商家提升服务品质,让品牌商家有动力运营好潜在客户,从而达到提升用户服务目标。桌面应用转化在未来是客服产品方向。...Native APIs:Native API让Electron有了跨平台桌面端原生能力,比如说它有统一原生界面,窗口、托盘这些。...渲染进程:渲染过程负责运行应用程序用户界面,渲染进程中提供了所有DOM API,Node.js APIElectron API子集。...主进程到渲染进程通信: 渲染进程到主进程通信: 有两种方案,一种是在主进程开启了nodeIntegration: true之后在渲染进程里面可以使用window.require(‘Electron...’)来引入写通信相关代码 一种是需要在主进程编写preload.js,在初始化窗口时候引入 通信同步异步问题 【异步】渲染进程->发送->主进程 【同步】渲染进程->发送->主进程 3.2.2

1.1K10

Electron末日来了?又一应用将其抛弃!WhatsApp强制推行原生应用:速度更快、内存占用更少

1 WhatsApp 弃用基于 Electron 框架构建桌面应用程序 近日,WhatsApp 正式弃用基于 Electron 框架构建桌面应用程序,用户需切换到原生版本以继续使用。...Electron 版 WhatsApp 桌面客户端上关闭信息 Electron使用 JavaScript、HTML CSS 构建跨平台桌面应用程序框架,基于 Chromium Node.js...除此之外,该应用程序还提供了更好用户界面,允许用户共享消息、照片、视频其他媒体内容,并允许用户拨打接听音频视频通话。...WhatsApp 表示,原生应用程序主要具备以下优势: 增强了可靠性并提升了速度; 专为桌面操作系统而设计并进行了优化; 即使手机离线,也能继续接收通知消息。...相比于大多数都能完全复用代码,针对性优化成本可以忽略不计。 同样是考虑到多端统一需求,2017 年,GitHub 也曾使用 Electron 重写了 macOS Windows 客户端。

47840

分享这半年 Electron 应用开发优化经验

优化策略 2.1 继续白屏作斗争 2.2 追赶原生交互体验 2.3 优化进程通信 坑还是会有的 扩展资料 为什么选择 Electron?...比如主进程跑长时间 CPU 任务,将阻塞渲染进程用户交互事件。 对我们应用来说,目前有以下进程, 以及它们职责: ① 主进程 进程间通信窗口管理 全局通用服务。...主进程全局服务客户端 windows.ts # 窗口管理客户端 tray.ts ......⑧ 没有退路了,那就只能上 Node 原生模块了 真好,还有退路 2.3 优化进程通信 涉及到多页面/窗口 Electron 应用,IPC 会非常频繁,搞不好会成为性能瓶颈。...② 封装IPC 库 为了优化 IPC 通信,我们自己基于Electron IPC接口, 封装了自己一套 RPC 库。主要特征有: 异步。没有同步选项。避免干蠢事 消息合并。

6.9K83

初探Electron,从入门到实践

Electron设计之初便充分结合了当今最好Web技术,作为一个跨平台“集成框架”,它可以轻松地与Mac、WindowsLinux兼容。...Electron内置功能包括: · 自动更新 - 使应用程序能够自动更新、升级 · 本机菜单通知 - 创建本机应用程序菜单上下文菜单 · 应用程序崩溃报告 - 您可以将崩溃报告提交给远程服务器...(哪些场景需要使用Electron) ? 以Windows平台应用开发为例,大部分人首先会想到使用成熟开发方案,如QT(C++)、WPF(C#) 等。...在chrome浏览器默认策略下,每一个tab都是独立进程,Electron也正是利用了这一策略。 渲染进程 渲染进程是应用程序浏览器窗口。...为了保持进程通信Electron有一个进程间通信系统(IPC也就是内部进程通信)。您可以使用IPC在主进程渲染进程之间传递信息。

2.5K20

Electron 吞噬资源,微软 Teams 为性能改用 WebView2

如果其他应用程序服务需要系统内存,Chromium 就会将空间移交给这些进程。如此一来,内存容量较小低端计算机也能带来不错性能表现。...WebView2 更像是一种类似于应用窗口控件,专门用于渲染 Web 页面。...所以要想将 Teams 规模应用程序过渡至 WebView2,开发团队需要对大量由 Electron 提供抽象进行重写。因此,Teams 在本质上将变得更接近于原生 Windows 应用程序。...值得注意是,Windows 更新管理功能并未覆盖到 Electron 与 WebView2。...看完文章我才明白,原来是微软 Teams 应用因为性能问题不再用 Electron 框架,改用自家 WebView2 了,微软方面(GitHub)并没有宣布放弃停止维护 Electron,所以大家还可以放心使用

3.3K50

IM跨平台技术学习(十一):环信基于Electron打包Web IM桌面端技术实践

1、引言早就听说利用Electron可以非常便捷将网页端快速打包成桌面应用,并且利用 Electron 提供 API 调用可以使用原生桌面 API 一些高级功能。...它通常用于等待应用程序依赖项准备好后再启动应用程序。例如,您可以使用 wait-on 等待数据库连接、消息队列其他服务就绪后再启动您应用程序。...主进程是 Electron 应用程序核心,它运行在一个 Node.js 实例中,并管理应用程序生命周期、窗口创建和销毁、与底层操作系统进行交互等。...主进程还可以通过 IPC(进程间通信)机制与渲染进程进行通信。渲染进程则是应用程序 UI 界面所在进程。每个 Electron 窗口都有其自己渲染进程。...如果想要实现主进程渲染进程之间通信,必须使用 Electron 提供 IPC 机制,通过发送消息方式来进行进程间通信

9210
领券