快速了解lectron:新一代基于eb的跨平台桌面技术

现在开发IM应用动不动就要求多端——即Android端、iOS端、PC端、Web端等,Android端和iOS端作为两种不同的移动端技术,单独开发和维护还能理解,PC端和Web端如果要单独开发那就有点头大了,必竟开发传统的PC桌面应用成本太高(QT这类技术跟Web技术相比,上手难度大的多,而且太小众)。所以,很大情况下大家都是PC富客户端和Web端二选一,对于比较磨叽的老板、产品经理或客户来说,这是个很费口舌的事情(你懂的。。。)。

在即时通讯网的官方技术群里不只一次看到大家在讨论Electron技术,作为新一代基于Web的桌面技术,已经被越来越的产品采用,成熟度和认可度都不错,Electron技术可以降低开发PC端的成本和难度,或许PC富客户端和Web端再也不需要二选一了。

本文将从入门者的角度,为你快速讲解Electron到底是个什么技术,包括案例介绍、技术优势、技术体验、实现原理等。

桌面应用程序,又称为 GUI 程序(Graphical User Interface),但是和 GUI 程序也有一些区别。桌面应用程序 将 GUI 程序从GUI 具体为“桌面”,使冷冰冰的像块木头一样的电脑概念更具有 人性化,更生动和富有活力。

我们电脑上使用的各种客户端程序都属于桌面应用程序,近年来WEB和移动端的兴起让桌面程序渐渐暗淡,但是在某些日常功能或者行业应用中桌面应用程序仍然是必不可少的。

传统的桌面应用开发方式,一般是下面两种。

1)原生开发:

直接将语言编译成可执行文件,直接调用系统API,完成UI绘制等。这类开发技术,有着较高的运行效率,但一般来说,开发速度较慢,技术要求较高,例如:

a. 使用C++ / MFC开发Windows应用;

b. 使用Objective-C开发MAC应用。

2)托管平台:

一开始就有本地开发和UI开发。一次编译后,得到中间文件,通过平台或虚机完成二次加载编译或解释运行。运行效率低于原生编译,但平台优化后,其效率也是比较可观的。就开发速度方面,比原生编译技术要快一些。例如:

a. 使用C# / .NET Framework(只能开发Windows应用);

b. Java / Swing。

不过,上面两种对前端开发人员太不友好了,基本是前端人员不会涉及的领域,但是在这个'大前端'的时代,前端开发者正在想方设法涉足各个领域,使用WEB技术开发客户端的方式横空出世——这就是本文正在介绍的“Electron”技术。

Electron于2013年作为构建Github上可编程的文本编辑器Atom的框架而被开发出来(PS:据说这个Atom看起来很漂亮,但很难用...)。这两个项目在2014春季开源。

Electron 发展历程中的里程碑:

目前它已成为开源开发者、初创企业和老牌公司常用的开发工具(看看谁在使用Electron)。

Electron资源:

可能主要是因为,猿类里的亚种——“前端开发”,又有了新的出路了吧,已经在岗的前端也有了新一年的 KPI/OKR,刚起步的创业公司可以只拉一个前端就能开发跨平台的多个桌面客户端... ...(开个玩笑)。

1)可以用 Web 前端技术开发跨平台的桌面客户端:

这是 Electron 最迷人的地方,究其根本是因为它是建立在 Chromium 和 NodeJS 之上的,一个负责界面,一个负责背后的逻辑,典型的'你负责貌美如花,我负责赚钱养家',为什么 Electron 能够开发跨平台的桌面应用也就可以理解了。

而对于前端开发来说,“不要和老夫说什么 C++,Java,老夫行走江湖就一把 JS,遇到需求就是干”。前端开发可以用自己熟悉的方式去写应用界面,逻辑部分也还是 JS,如果你精通 Node 后端,那后端也可以插一脚,“鸟枪换大炮”,你开发客户端的能力有一种“忽如一夜春风来”的感觉。

但是,不同系统间还是会有很大的不同,“同一套代码,编译出跨平台的多个客户端”,话是这么说,但你得因为系统的不同做一些额外的处理,以使得打包出的不同系统下的应用都可以正常工作,这可能是一些“if - else”的成本,但相比于那80%都能完全复用的代码,这些成本已经很小了。

综上所述:一个 Web 前端开发者可以花很少的成本去上手 Electron,而相比于以前开发多平台客户端的成本,利用 Electron 开发多平台客户端的成本是极低的。

2)可以从 NodeJS 的生态获得极大的助力:

因为 Electron 是基于 NodeJS 的,意味着,NodeJS 这个大生态下的模块,Electron 也都可以用,这减少了很多造轮子的时间,你要写一些逻辑将首先思考有没有成熟的模块可以引入,而不是自己吭哧吭哧闭门造车,自己造时间精力会大量得被消耗,上路还可能翻车。

Electron 从 NodeJS 获益有2个方面,一个方面是如现代的 web 项目一般,开发构建流程可以引入很多成熟的包去打造出适合自己项目的开发工作流,另一个方面就是其应用本身也可以依赖需要的包去完成自己的功能。

3)“这个东西做Web版就可以,干吗还要开发PC客户端版?”

既然 Electron 是用 Web 技术写客户端,那么看上去 Electron 要做的事,可以搬到网站上。

为什么还要搬到PC客户端,这里有3个角度的回答:

a. 用户角度: 客户端是一款独立的软件,其综合体验一般都是比网站高的,尤其是涉及到「工具」范畴的应用,此外,特定的用户群体也会有类似的使用习惯;

b. 发行方角度: 客户端是另一种产品形式,是一种产品的分发方式和入口,客户端可以实现很多本地应用独有的需求去触达用户,也能提供更加可靠的服务;

c. 开发角度: 终于...不用考虑浏览器兼容了,Chromium 也足够开发使用一些先进的 CSS 或 JS 特性,我们现在还没计划引入 webpack 和 babel,因为现在好像够用,克制才是爱,除了写起来爽,对于开发来说,终于跳出了浏览器的沙盒,你可以自己去控制 Electron 中的“浏览器”,莫名的开心。

这些综合起来回答这个小节的问题就是,用 Electron 开发客户端,用户体验好,开发麻烦小,功能更强大,老板脱发少。

Electron 相关的社区生态很好,之后的开发过程也证明了这一点,遇到的问题基本都能通过 Stackoverflow 找到,如果没有找到,新开一个问题或者去 Github 提 Issue 都可以得到较快的解决,除非是一些已知的问题或一些看文档可以解决的问题,这类问题可能会被忽略过去。

所以,生态更好一些,我选择了 Electron。

5)总结一下,使用Electron开发的理由:

a. 使用具有强大生态的Web技术进行开发,开发成本低,可扩展性强,更炫酷的UI;

b. 跨平台,一套代码可打包为Windows、Linux、Mac三套软件,且编译快速;

c. 可直接在现有Web应用上进行扩展,提供浏览器不具备的能力;

d. 你是一个前端‍~

当然,我们也要认清它的缺点:性能比原生桌面应用要低,最终打包后的应用比原生应用大很多。

兼容性:虽然你还在用WEB技术进行开发,但是你不用再考虑兼容性问题了,你只需要关心你当前使用Electron的版本对应Chrome的版本,一般情况下它已经足够新来让你使用最新的API和语法了,你还可以手动升级Chrome版本。同样的,你也不用考虑不同浏览器带的样式和代码兼容问题。

跨域:你可以直接使用Node提供的request模块进行网络请求,这意味着你无需再被跨域所困扰。

现在市面上已经有非常多的应用在使用Electron进行开发了,包括我们熟悉的VS Code客户端、GitHub客户端、Atom客户端等等。

印象很深的,去年迅雷在发布迅雷X10.1时的文案:

从迅雷X 10.1版本开始,我们采用Electron软件框架完全重写了迅雷主界面。使用新框架的迅雷X可以完美支持2K、4K等高清显示屏,界面中的文字渲染也更加清晰锐利。从技术层面来说,新框架的界面绘制、事件处理等方面比老框架更加灵活高效,因此界面的流畅度也显著优于老框架的迅雷。至于具体提升有多大?您一试便知。

你可以打开VS Code,点击“帮助”-“切换开发人员工具”,来调试VS Code客户端的界面:

Electron的官网还列举了更多案例:看看谁在使用Electron。

1)Chromium:

Chromium 是 Google 为发展 Chrome 浏览器而启动的开源项目,Chromium 相当于 Chrome 的工程版或称实验版,新功能会率先在 Chromium 上实现,待验证后才会应用在Chrome 上,故 Chrome 的功能会相对落后但较稳定。

Chromium为Electron提供强大的UI能力,可以在不考虑兼容性的情况下开发界面。

单单靠Chromium是不能具备直接操作原生GUI能力的,Electron内集成了Nodejs,这让其在开发界面的同时也有了操作系统底层 API 的能力,Nodejs 中常用的 Path、fs、Crypto 等模块在 Electron 可以直接使用。

3)系统API:

为了提供原生系统的GUI支持,Electron内置了原生应用程序接口,对调用一些系统功能,如调用系统通知、打开系统文件夹提供支持。

在开发模式上,Electron在调用系统API和绘制界面上是分离开发的,下面我们来看看Electron关于进程如何划分。

Electron核心可以分成2个部分:主进程和渲染进程。

主进程连接着操作系统和渲染进程,可以把她看做页面和计算机沟通的桥梁。渲染进程就是我们所熟悉前端环境了,只是载体改变了,从浏览器变成了window。

传统的Web环境我们是不能对用户的系统就行操作的,而Electron相当于NodeJS环境,我们可以在项目里使用所有的node api(Electron的作者相当机智...)。

简单理解:给Web项目套上一个NodeJS环境的壳,就是Electron技术。

项目结构:相比web项目,桌面项目多了一个进程,如下图所示。

项目迁移:如果要迁移项目到Web端,就需要把项目中的Electron提供的API和NodeJS的API完全剥离出来,只能遗留Web的代码,比如 node fs模块,Electron提供ipc 模块,都需要剥离。如果你一开始就打算双端程序,在开始写代码时应该对Web代码和Elecctron的代码进行分离,以便后期的迁移。

Electron是一个年轻的开源项目,被原作者一个人维护了很长时间,这反而成了很好的开始。浏览器是个比较复杂的东西,很少能引起人的兴趣,但是Electron已经有了很多个开发者,还有很好的跨平台支持,有了个不错的开始。

最后说一些可以帮助你更好学习electron的基础知识:

1)Webpack: 最强构建工具,没有之一,了解webpack,你才能更好编写项目配置;

2)NodeJS: Electron是搭载谷歌v8内核的高性能的NodeJS环境 ,所有NodeJS能用的东西,我们都能用。是不是很酸爽?

Web即时通讯新手入门贴:

《新手入门贴:详解Web端即时通讯技术的原理》

Web端即时通讯技术盘点请参见:

《Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE》

关于Ajax短轮询:

找这方面的资料没什么意义,除非忽悠客户,否则请考虑其它3种方案即可。

有关Comet技术的详细介绍请参见:

《Comet技术详解:基于HTTP长连接的Web端实时通信技术》

《WEB端即时通讯:HTTP长连接、长轮询(long polling)详解》

《WEB端即时通讯:不用WebSocket也一样能搞定消息的即时性》

《开源Comet服务器iComet:支持百万并发的Web端即时通讯方案》

更多WebSocket的详细介绍请参见:

《新手快速入门:WebSocket简明教程》

《WebSocket详解(一):初步认识WebSocket技术》

《WebSocket详解(二):技术原理、代码演示和应用案例》

《WebSocket详解(三):深入WebSocket通信协议细节》

《WebSocket详解(四):刨根问底HTTP与WebSocket的关系(上篇)》

《WebSocket详解(五):刨根问底HTTP与WebSocket的关系(下篇)》

《WebSocket详解(六):刨根问底WebSocket与Socket的关系》

《理论联系实际:从零理解WebSocket的通信原理、协议格式、安全性》

THE END
0.美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?问题:M手机扫码登录,完整流程是什么? 最近有小伙伴面试美团 问到此 面试题。小伙伴没有系统的去梳理和总结,所以支支吾吾的说了几句,面试官不满意,面试挂了。 所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,让面试官爱到 “不能自已、口水直流”,然后jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1:;73;8:
1.🧘‍♂️赢取超值大奖:🥊直播🦄体育🎰今日爆款!🏂华体会登陆苹果下载 福彩3d最新走势图专业版带连线 排三开出什么号 24-25英超排名 澳门大三巴一肖二码期期中特骁龙8至尊版手机有哪些 今天的3d试机号开机号是多少 报纸订阅平台 2024正规彩票app下载 正规买球app十佳平台小白彩彩票 斗地主5元10元什么意思 蛙蛙游戏大厅 德甲比赛今日视频直播 金手指手游修改器2018鲨鱼jvzq<84gsir/x|w0ipo8
2.北京蓝书文化传媒自媒体网🏃‍♀️🏃‍♂️ 家人们,深圳的盒马超市遍布全城,你真的找对了吗?从福田到南山,从罗湖到宝安,每个角落都有它的身影!这篇攻略不仅帮你找到最近的门店,还能让你get到最新鲜的食材和最便捷的生活方式!再也不用担心找不到好货 2025-11-09 23:56 【5】降至千元的旧旗舰手机:捡漏神器还是智商税? jvzq<84ycr4xfw3jeuyde7hqo1
3.重庆左师傅科技自媒体网为什么boss直聘pc端功能不如手机端完善? 百亿补贴倒计时!你还在等什么?赶紧冲!💰 考拉解析官网入口,解锁超全资源,告别摆烂,家人们快来收下这份宝藏指南📚🚀 知名女星即将被取代!新一任更年轻! 产业观察:人形机器人加速走进现实 刷淘金币得App叫啥?揭秘淘金币赚钱的秘密武器! 爱朋医疗发布2024年报,脑机接口等jvzq<84fcvuoi7h|loz/exr0ep5
4.海口SEO快照更新慢?揭秘百度快速收录的5大核心策略,PC揭秘百度快速收录的5大核心策略,PC_移动端同步生效 但海口的不少企业主和站长都常常会遇到这样一个棘手的难题:将网站的内容更新了好几天了,可就是百度的快照却迟迟的不更新,导致新页面的相关的关键词就都被老的快照给挤的越来越低了,自然也就导致了新页面的相关的用户的搜索就都被老的快照给挤的越来越低了,jvzq<84dnqm/79=8884lhy|yxnkbf7xdu1z
5.🐹官网🦟平台🐂网址🏄‍♂️登录💐手机版🦂Aso官方平台苹果版 bet9登录口 八方娱乐 澳门银河老虎机 2018精彩彩票客户端下载AAA炸金花手机版正版 壹号公馆ktv 白金岛竞技棋牌平台下载 电子游戏官方 澳门葡京网址注册平台正规的AG平台有哪些 2025年沙特电竞世界杯 022期福彩3D历史开奖号码 体育竞彩足球比分直播 大神BT官网澳门码王com最新资料 玩球直播app手机版 jvzq<84cfvl/q|fmt0io1
6.🐍登录🃏入口🥀APP🏋️‍♀️手机版🐘大鱼号官网pc端注册,博乐app官网下载,吉祥棋牌三打一,威澳门尼斯人网场APP下载,国民彩票下载手机版安博娱乐下载网站-黑芝麻,台湾彩券官网首页,彩500天天救援下载,喜乐在线是什么app,天线宝宝高手论坛的最新内容分享开元ky50棋牌正版,富贵B站,https://mma.prnasia.com/media2/2743342/VT_Trading_Arena_Heats_Up_jvzq<84jwf4dnyqcpv4dqv4
7.ShopWindv4.2更新,多商户电商系统Yii2+Vue3+ElementUI+uniapp移动端预览: 平台后台预览 PC 端预览 商家管理预览 自定义页面装修预览 演示体验 后台体验:https://v4.shopwind‍.net/admin平台管理员账号:admin 密码:111111 前台体验:https://v4.shopwi‍n‍d.net自行微信登录、QQ、支付宝登录 商家体验:https://v4.shopwind.n‍et/seller/login商家测试账号:18978189jvzquC41yy}/q|hjkpg/pny1pg}t1;977:;0uqtrykte/=24/tkmgjxgf
8.淘宝店铺装修手机端和pc端一样吗?淘宝店铺装修手机端和pc端一样吗? 淘宝店铺的经营,一般都要求能够多去了解清楚一些经营知识,正能够做到为自己带来一个比较大的帮助,现在有很多人都有这样的需求,对于店铺的经营方面都会建议大家可以多去了解一下有什么样的方法来帮助自己店铺拥有更加良好的流量,被更多人所认可,其实自己就会建议大家可以去做好店铺装修jvzquC41yy}/j~fpngmvcwl0eqs0exsvgpz.4B9880nuou
9.🐒官方🏹APP🛹链接🏄‍♀️网址🐜手机版🐙一,118网络娱乐平台,大鱼号pc端登录入口 二,永盈棋牌8.0.2版本,百乐门查理厅 三,大富豪手机版官网下载,畅玩平台 四,中国网易彩票app苹果下载安装,zank.top 五,www.88g15.com,www .ht392op. 六,牛宝体育软件APP,eb体育app安卓版极速版 七,一肖二码44468.com 5060全讯白菜网注册 鸿运appjvzq<84yyy4nw|nefqil0ls1
10.《微信PC端4讲道理,这个功能在手机上都普及多久了,PC 端现在才跟上,这反射弧确实有点长。不过有总比没有强,对吧? 当你在电脑上刷朋友圈(别不承认,有时候就是在摸鱼),看到好友的动态,可以直接在评论区点击新增的 " 图片 " 图标,从电脑里选择图片或动图进行评论了。 以后和朋友在评论区斗图,再也不用掏出手机了。 对于我们这些电脑党的懒癌患者来说,绝对算jvzq<84xnqm/{rikcpiiqwl0ep5egonpg1:85?>a24680|mvon
11.辽宁11选5软件下载手机版‍ 【辽宁11选5软件下载】支持:Android、iOS158、HarmonyOS系统类型:辽宁11选5软件下载(欢迎您)综合版本IOS/安卓官方入口V838.311(APP下载、登录入口、官方网站、网页版、平台、网址、地址、注册、娱乐)官方入口是一款集合了动作、冒险、角色扮演等多种元素的大型多人在线角色扮演游戏。游戏以一个充满奇幻色彩的世界jvzquC41yy}/iy{erg/exr1xkkx1:826;
12.PC端微信,重要更新!有心人最近已经发现了微信的秘密:实现了“多端 1 面”的功能对齐。 简单来说,电脑微信进行了更新,这些功能Windows 端和 Mac 端均能体验了—— 比如,收钱 最直观的就是从这样: 变成这样: 从此,上班不用低头拿手机,抬头在电脑上也能秒收来自单聊中的转账。 jvzquC41o0mny7hp146376561380exsvgpz`3<5623:2:<3jvo
13.ShopWindv4.5更新,Vue3+uniapp商品规格修复支持多规格自定义移动端体验 H5 端体验:‍https://v4.shopwind.net/h5 扫码体验其他端 更新内容如下: 新增行云货仓商品采集插件 新增服务端管理后台 DIY 装修选择秒杀商品组件增加分类和关键词搜索条件 新增电脑端店铺商品分类设置 新增电脑端发布商品时增加本店分类 jvzquC41yy}/q|hjkpg/pny1pg}t1;;669>0uqtrykte/=27/wvec}jf
14.❌18禁漫画同人安装包下载💮2025-10-31 16:25:41「💮MBAChina💮」【碧蓝航线❌18禁漫画同人安装包下载:碧蓝航线❌18禁漫画同人安装包下载-碧蓝航线❌18禁漫画同人PC端下载-10月31日讯 在未来的科技发展中,虚拟现实(VR)和增强现实(AR)的技术将为世界带来革命性的变化,尤其是在军事和国际事务领域。预计到2027年,联合国将在和平jvzquC41yy}/ryy420ipo8g
15.likeshop全开源商城系统前后端分离、已适配微信小程序、手机h5页面、安卓app、苹果app。 ### 💻PC端前台 前后端分离 ### 功能特性 代码逻辑注释清晰,非常方便二次开发。 支持PHP7,执行效率翻倍,遵循PSR-4开发规范。 支持composer,内置优秀php开发sdk,方便二次开发。 支持docker部署,内置docker-compose容器编排,一句命令自动配置项目运行jvzquC41ikzfg7hqo1rjmnxjqrehk}jg1nolg|mqr
16.ShopWind商城系统V4.5发布,Vue3+ElementUI+uniapp移动端预览: 平台后台预览 PC 端预览 商家管理预览 自定义页面装修预览 演示体验 后台体验:https://v4.shopwind‍.net/admin平台管理员账号:admin 密码:111111 前台体验:https://v4.shopwi‍n‍d.net自行微信登录、QQ、支付宝登录 商家体验:https://v4.shopwind.n‍et/seller/login商家测试账号:18978189jvzquC41yy}/q|hjkpg/pny1pg}t1;:845<0uqtrykte/=27/tkmgjxgf
17.30s打造顺滑、零卡顿网站浏览体验!提速神器Booster上线据测试商家反馈,安装性能优化Booster插件后,C端用户打开页面速度更快,不同主题页面的评分有一定程度提升。 PC端案例 使用性能优化Booster插件后,原来3s的打开速度将提升到1.5s,缩短50%。 ‍ 移动端案例 使用性能优化Booster插件后,原来3s的打开速度将提升到2.2s,缩短26%。 jvzquC41ujuqnrsgcrv/ew4dnqm059x/fc3{cx2ujwt.j~f/nkth/znc/f{o/€fpi/€icw2nkw3mcw2vk/bp6yk/u{.uqjp/so.dxtuvgx.uqfpi/~jcw4
18.51吃瓜使用常见问题解决app下载网站建设如何保证移动端与PC端兼容 发布于 2025-11-10 | 作者:张语岑 | 浏览:85188| 文章来源:安智网 1.51吃瓜使用常见问题解决🥒『免费看片,秒开不卡顿』🍕(激情瞬间,永不停歇)【点击进入-惊喜多多】 2.les之间🚀『越看越上头,让你停不下来』(一秒点燃你的欲望,根本停不下来)【点击进入-惊喜多多jvzq<84dnqm/7:5c8m4fozpnexfc}j0udy0z
19.最新文章让技术变得更有价值快充和闪充只有1字之差,两者有什么区别呢?闪充技术它采用了低高压电流的形式,提升了手机的充电速度。而快充技术恰恰相反,采用了高低压的电流 专栏 开关电源芯片 10小时前 133 0 0 对于极暗场景RAW图像去噪,你是否还在被标定折磨? SID[1] 首先提出一套完整的 benchmark 以及 dataset 进行RAW图像低光增强或去噪jvzquC41yy}/gujehctt0lto1f5og€juv1916<6
20.手机端怎么装修店铺?装修店铺有哪些技巧呢?淘宝手机端店铺装修随着移动端流量占比超过90%,淘宝手机店铺已全面成为商家运营的核心阵地。相较于pc端,手机屏幕的空间限制更严格,要求我们必须在3秒内迅速吸引用户目光。科学合理的店铺装修不仅可提升30%以上的页面停留时间,还能显著提高转化效率。本文将深入解析手机端店铺装修的关键策略,帮助您构建高效能的移动店铺。 jvzquC41yy}/rqu0ep5gcz437975;=3jvor