Electron通过结合Chromium和Node.js使前端开发者能用HTML、CSS、J*aScript构建跨平台桌面应用,其核心由主进程(管理窗口与系统功能)和渲染进程(展示UI)组成,两者通过预加载脚本与IPC安全通信,使用electron-builder可打包为各平台可执行文件,关键在于理清进程分工与通信机制。

Electron 让前端开发者可以用熟悉的 HTML、CSS 和 J*aScript 构建跨平台的桌面应用,支持 Windows、macOS 和 Linux。它结合了 Chromium 渲染引擎和 Node.js 运行环境,让你既能写网页,又能访问系统底层功能。
Electron 应用由两个主要进程组成:
主进程使用 BrowserWindow 创建窗口,每个窗口加载一个 HTML 页面,就像打开一个网页一样,但这个页面能通过预加载脚本与 Node.js 通信。
初始化项目并安装 Electron:
npm init -y npm install electron --s*e-dev
在 package.json 中添加启动命令:
"scripts": {
"start": "electron main.js"
}
创建 main.js 作为入口文件:
const { app, BrowserWindow } = require('electron')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: __dirname + '/preload.js'
}
})
win.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
直接在渲染进程中启用 Node.js 有安全风险。推荐做法是通过预加载脚本暴露有限接口:
创建 preload.js:
科大讯飞-AI虚拟主播
科大讯飞推出的移动互联网智能交互平台,为开发者免费提供:涵盖语音能力增强型SDK,一站式人机智能语音交互解决方案,专业全面的移动应用分析;
79
查看详情
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
send: (channel, data) => ipcRenderer.send(channel, data),
on: (channel, func) => ipcRenderer.on(channel, (event, ...args) => func(...args))
})
在渲染进程中发送消息:
window.electronAPI.send('msg-from-renderer', 'Hello Main')
在主进程中监听:
ipcMain.on('msg-from-renderer', (event, data) => {
console.log(data)
})
使用 electron-builder 打包应用:
npm install --s*e-dev electron-builder
配置 package.json:
"build": {
"productName": "MyApp",
"appId": "com.example.myapp",
"win": { "target": "nsis" },
"mac": { "target": "dmg" },
"linux": { "target": "AppImage" }
}
添加打包命令:
"scripts": {
"pack": "electron-builder --dir",
"dist": "electron-builder"
}
运行 npm run dist 即可生成对应平台的可执行文件。
基本上就这些。Electron 降低了桌面开发门槛,只要会写网页就能做出跨平台应用,关键是理清主进程和渲染进程的分工,合理设计通信机制,注意安全设置。不复杂但容易忽略细节。
以上就是跨平台J*aScript_Electron桌面应用开发的详细内容,更多请关注其它相关文章!
# 桌面应用
# 运行环境
# 互联网
# 都是
# 可执行文件
# 屏幕保护
# 加载
# 主播
# 科大
# j
# 前端
# js
# html
# java
# javascript
# linux
# css
# electron
# node.js
# 黄骅网站推广费用
# 网站优化推广运营面试题
# 营销创新推广方案
# 深圳网站优化分析公司怎么样
# 金华抖音推广营销方案
# 贴心的泉州seo方案
# 清远网站seo优化
# 低价网站建设开发电话
# 保定短视频seo优化
# 佛山优化网站公司
# 就像
# 让你
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
电子白板帮助菜单使用指南
c++中的const关键字用法大全_c++ const正确使用指南
uc浏览器官网网页版使用 uc浏览器官网免费在线首页
歌词怎么展示在|直播|间视频号?有什么注意事项?
实时数据流中高效查找最小值与最大值
Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件
如何查询个人病历记录
WooCommerce购物车:强制显示所有交叉销售商品教程
外媒评《燕云十六声》DIY载具新玩法:很像《塞尔达传说王国之泪》!
Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题
Python中深度嵌套字典与列表的数据提取与条件过滤指南
解决VS Code中Python版本冲突与输出异常的指南
《金山词霸》语音翻译方法
Flash AS3.0简易相册制作
手机雨课堂网页版入口免登录 雨课堂网页版可点击直接进入
Golang中的rune与byte类型区别是什么_Golang字符与字节处理详解
抖音号升级成企业资质怎么弄?有什么好处?
如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成
Mac hosts文件在哪里_Mac修改hosts文件详细教程
圆通快递官网入口查询单号 手机版官方查询入口
pubmed数据库官方主页_pubmed学术论文查找官网直达
苹果11如何更换iCloud账号_苹果11账号切换的具体步骤
yy漫画登录页面官方入口_yy漫画在线阅读网址入口
惠普电脑BIOS界面看不懂怎么办_HP电脑BIOS功能选项解读与设置
申通快递物流信息查询 申通快递包裹状态追踪
sublime如何处理超大文件不卡顿 _sublime打开大日志文件技巧
VS Code的时间线(Timeline)视图:您的代码时光机
Flexbox布局实践:实现底部页脚与顶部粘性导航条的完美结合
MySQL多重JOIN技巧:高效关联同一表获取多角色信息
金牛福袋获取攻略
Lar*el如何创建自定义的辅助函数(Helpers)_Lar*el全局函数定义与加载方法
企查查官网和爱企查 企查查企业查询官网入口
铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明
作业帮网页版不用下载入口 在线问老师快速答疑
申通快递查询 申通物流快递单实时查询入口
Retrofit根路径POST请求:@POST("/") 的应用与解析
更换小红书群背景怎么换?小红书群规则怎么设置?
edge浏览器怎么修改语言为中文_Edge界面语言切换教程
《下一站江湖2》大雪山加入方法
汽水音乐车机版 汽水音乐车机版官方入口
英雄联盟争者留名活动介绍
哈尔滨城市通昵称修改方法
使用jQuery精确检测除指定元素外任意位置的点击事件
Go语言中方法与接收器:指针和值类型的调用机制详解
路由器DNS怎么设置最快 优化DNS提升上网速度教程
易车网官网直达入口 易车网在线登录入口
汽水音乐网页版登录 汽水音乐网页端官方入口
sublime text 4如何安装_最新版sublime下载与汉化教程
如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践
百度网盘如何设置上传限额
2025-11-17
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。