electron(electron 可以跨平台吗)

:暂无数据 2026-09-03 07:20:02 :0

electron(electron 可以跨平台吗)

各位老铁们,大家好,今天由我来为大家分享electron,以及electron 可以跨平台吗的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

electron 可以跨平台吗

看场景,不能一概而论说哪个更好。
Qt适合一些性能要求高的桌面应用,如果你只打算做桌面端的话。或者是一些特殊的场景,比如你要做个类似绘声绘影的视频器,做个类似word之类的桌面应用,那你用electron要么是没法做,要不就是体验非常烂。实际应用上,比如wps,yy语音,VirtualBox,以及部分adobe的桌面工具都是Qt做的。
Electron适合一些偏业务的应用,对性能没有很多要求,主要是业务逻辑和UI展示,比较轻量级的应用。因为Electron可以一份代码同时得到网页版和桌面版,所以如果你的应用还需要网页版,那么Electron可以极大地节省你的开发和维护成本。比如钉钉,slack,现在越来越多的偏业务型(并不是需要高性能的专业工具)应用开始使用Electron来做了。
当然了,native还是web只是一种权衡,并不是有唯一答案的。
比如微信桌面版是native(当然不是Qt,是腾讯自己的UI库)而定位类似的钉钉则是web。豌豆荚这个不需要网页版的应用居然也是web方案(不是Electron,不过方案类似),wunderlist的win32版本也使用了web方案和网页版共用一套代码。
总的来说,native方案(Qt,WPF等)适合于高性能的专业应用,Electron适合想要把网页版和桌面端共享代码,同时对性能没有苛刻要求的场景。如果不在乎成本,native一定是体验更好的(微信),但是如果认为桌面端复用网页版的体验也能接受,那Electron成本会更低一些。

PS:其他回答说到了移动端。无论是Qt还是Electron都不应该考虑移动端,Qt支持很烂,Electron并不支持(官方已经表态不会考虑支持移动端)。这个问题显然只是考虑桌面端的。
PPS:手机淘宝/手机京东并不是web app,不要想当然了。
PPPS:如果想用web方案,就用Electron,不要考虑用Qt去包一个QWebkit(或者任何其他让你自己去包webkit的方案)。做当然是可以做的,不过这等于把Electron又实现了一遍(基本实现倒是简单,但是细节上完善起来需要成吨的工作),同时还不能使用Electron社区已有的大量支持,何必呢。微软都没有选择再造一个而是直接用Electron。
Qt在传统的嵌入式领域无可替代,在跨平台桌面应用UI开发上也是为数不多的好选择(相比于WxWidgets更成熟,同时能够和各个平台自己的本身UI风格基本一致,毕竟实际上都是自己模拟绘制的,有些细微地方还是有差异),electron更多的是前端的一种延伸,前端本身在UI上的开发效率和轮子都是比较多的。完全是两个都很完整的开发生态,各有优缺点,没必要争执一下哪个好。
技术选型更多还是考虑你的团队人员技术积累(C++或者PyQt也行,跟前端,差异还是比较大的)和具体场景。

electron怎么关闭框架的右键菜单

我还是直接贴代码吧,const Menu = require(“menu“);

作者:lebornjose
链接:

// Create the Application’s main menu
    let template = [{
        label: “Application“,
        submenu: [
            { label: “About Application“, selector: “orderFrontStandardAboutPanel:“ },
            { type: “separator“ },
            { label: “Quit“, accelerator: “Command+Q“, click: function() { app.quit(); }}
        ]}, {
        label: keysBinding[“Edit“],
        submenu: [
            { label: keysBinding[“Undo“], accelerator: “CmdOrCtrl+Z“, selector: “undo:“ },
            { label: keysBinding[“Redo“], accelerator: “Shift+CmdOrCtrl+Z“, selector: “redo:“ },
            { type: “separator“ },
            { label: keysBinding[“Cut“], accelerator: “CmdOrCtrl+X“, selector: “cut:“ },
            { label: keysBinding[“Copy“], accelerator: “CmdOrCtrl+C“, selector: “copy:“ },
            { label: keysBinding[“Paste“], accelerator: “CmdOrCtrl+V“, selector: “paste:“ },
            { label: keysBinding[“Select All“], accelerator: “CmdOrCtrl+A“, selector: “selectAll:“ }
        ]}
    ];//注册菜单 Menu.setApplicationMenu(Menu.buildFromTemplate(template));

如何将electron框架开发的软件包打包成单一exe文件

前言:研究electron自动更新的时候,在electron的官方文档auto-updater 中,提到了在几个平台mac,linux,windows下electron 的自动更新方法,其中windsow平台上面,文章中建议先用grunt-electron-installer 模块来创建windows安装包,grunt这个工具是由Squirrel集成的。进而了解下Squirrel这个工具,
一个可以用来给electron应用的安装更新卸载添加快捷方式的工具。本文主要提及如何在windows平台下,用Squirrel创建electron的.exe安装包。

创建nuget包

我们的方法是使用nuget工具创建Nuget包,再使用Squirrel工具创建.exe。

1.下载squirrel.exe和nuget.exe,也可以选择直接安装Squirrel.Windows (需要有vitual
studio环境)。

2.新建文件夹如my-build,把下载好的squirrel.exe,nuget.exe和setup.exe

放进去,在文件夹放入我们未打包的electron应用,如下图:

4.在my-build根目录中,打开命令行执行nuget spec

如下图:

生成 spec包初始文件

5.器打开 Package.nuspec,按照自己项目的需要这个文件,如下图:

这里需要注意:根据Squirrel文档说明,target folder 属性需要设置为lib/net45,否则并没有用;《iconUrl》标签用来制定未来的exe的icon。

5.用下面的命令创建一个nuget包,

nuget pack Package.nuspec

如下图:

之后在目录中会出现这个包

命名规则就是《my_app_name》.《version》.nupkg

创建安装程序

把应用程序打包成nuget包之后,就可以用squirrel创建一个安装程序了。在根目录打开命令行,执行以下命令:

squirrel --releasify 《my_app_name》.《version》.nupkg

这个时候命令行中没有任何提示。但是别慌,编译一段时间后程序会创建一个release文件夹,里面有三个文件,nuget包,RELEASES 文件和安装文件Setup.exe。如下图:

如果没有出现这三个文件,可以查看目录中的SquirrelSetup.log,根据里面的报错,来进行调试。

注意上面这条squirrel 命令,可以用来设置setup.exe在安装过程中用传统icon还是用自定义的图片文件。使用Squirrel --help可以查看更多帮助

发布应用和安装应用

把上一步生成的setup.exe发送给想要安装这个应用的用户,就可以了。

最终应用会被安装在C:\Users\Administrator\AppData\Local\[appname] 文件夹中,注意Squirrel 的日志文件也存在目录中,调试安装问题的时候非常有用。

双击我们的setup.exe进行安装app的测试,如果中途有任何出错,在

C:\Users\Administrator\AppData\Local\SquirrelTemp 里面可以看到安装日志。如下图:

安装之后打开C:\Users\Administrator\AppData\Local 目录,可以看到app安装在这里,如下图:

自动创建快捷方式

进入我们安装之后的文件夹,命令行进入C:\Users\Administrator\AppData\Local\[your appname],执行 Update.exe --help ,可以看到

不知道从上图你有没有得到什么提示,反正我发现了,在命令行手动创建快捷方式的命令是Update.exe --createshortcut electron\electron.exe -i [your ico toute]\app.ico

所以,如果我们想让应用在安装过程中静默地创建好快捷方式,那就需要在app的安装之后相反设法执行这句代码。

因为我们的.exe会在安装之后自动打开程序,所以我在程序的入口main.js,添加sqruieel事件的监听就好了。如下图:

我顺便把程序卸载时,删除快捷方式的监听事件也写了进去。还有程序的更新和删除事件监听,但是这两个事件,我还没有进行测试。

更新应用

其实我一直很想做增量更新,在这里我的更新方法有两个,第一是在程序的入口添加js,发送请求到服务器,拉取更改文件进行本地替换,但是如果是node_module依赖包的更改,这个方法并不可行。第二个方法比较安全而且快捷通过发布一个版本号不同的exe,如下:1.在这个创建安装程序的步骤2中,我们把程序代码都复制到了这个文件夹里面,如下图:

如果后续我们的程序要进行更新,首先我们需要把更改的文件直接复制替换到这个文件夹。

2.打开Package.nuspec,version标签

3.参考本文种中创建安装程序部分的步骤2-4,重新生成setup.exe,发布应用。

通过执行setip.exe安装,程序会自动删除之前的应用,但是我并不清楚,sqruieel 是进行了增量替换,还是将之前的整个应用进行删除,再重新安装。

创建自定义安装包

在上一步,我们已经把自己的exe发布出来了,但是如果没有自定义名字跟icon,好像还不够酷,所以我们需要创建自定义的安装文件。

1.下载安装 Resource
Hacker

2.打开这个项目目录,在electron.exe上面右键

出现菜单,点击 Open using Rescource Hacker。

3.Resource Hacker应用运行之后中,在以下界面中选择Icon,然后在工具栏里面选择Action,Replace
Icon,如下图:

然后选择自己想要替换的.ico文件就好

4.这其实并不够,我们还需要更换exe里面的版本信息,打开Version
Info,把FileDescription和ProductName改成我们自己的项目名称,最好把SquirrelAwareVersion也更改一下,毕竟是版本号。

5.做完这些之后,我们需要按照之前的步骤,在命令行中输入

nuget pack Package.nuspec

重新生成nuget包,然后再使用

squirrel --releasify 《my_app_name》.《version》.nupkg 命令创建安装文件。

6.打开之后生成的releases文件夹,参考本文种中创建安装程序部分的步骤2-4,对setup.exe进行自定义。

最后,一个可以自动更新又安装便捷,还有我们自己的酷酷的图标跟名字的应用就生成拉!

关于electron和electron 可以跨平台吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

electron(electron 可以跨平台吗)

本文编辑:admin

更多文章:


majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

最近更新

majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表