Electron进程间通信(IPC)详解:三种主要通信方式及实现步骤
创作时间:
作者:
@小白创作中心
Electron进程间通信(IPC)详解:三种主要通信方式及实现步骤
引用
CSDN
1.
https://blog.csdn.net/sallyyellow/article/details/144139084
在Electron框架中,进程间通信(IPC)是构建功能丰富的桌面应用程序的关键。本文将深入探讨Electron中的IPC机制,主要包括三个方面:渲染进程到主进程的单向通信、渲染进程与主进程之间的双向通信,以及主进程到渲染进程的单向通信。通过ipcMain和ipcRenderer模块,Electron实现了不同进程间的消息传递,从而确保了应用程序的高效运行和功能的丰富性。
1、渲染进程→主进程(单向)
概述:在渲染器进程中使用
ipcRenderer.send
发送消息,在主进程中使用ipcMain.on
接收消息。常用于:在 Web 中调用主进程的 API,例如下面这个需求:
需求:点击按键后,在用户的 D 盘创建一个 hello.txt 的文件,文件内容来自于用户输入
实现步骤:
- 在index.html页面中添加相关元素
- 在render.js中添加对应脚本
- 在preload.js中使用
ipcRenderer.send('信道','参数')
发送信息,与主进程通信
- 在main.js主进程中接收信息,并定义函数执行操作
2、渲染进程⇌主进程(双向)
概述:渲染进程通过
ipcRenderer.invoke
发送消息 ,主进程使用ipcMain.handle
接收并处理消息。备注:ipcRenderer.invoke
的返回值是Promise
实例。常用于:从渲染器进程调用主进程方法并等待结果,例如下面这个需求:
需求:点击按键后,从 D 盘读取 hello.txt 的文件的内容,并将结果呈现在页面上
实现步骤:
- 在index.html页面中添加相关元素
- 在render.js中添加对应脚本
- 在preload.js中使用
ipcRenderer.invoke('信道','参数')
发送信息,与主进程通信 - 在main.js主进程中接收信息,并定义函数执行操作
- 在render.js中接收从main.js->preload.js得到的结果
3、主进程→渲染进程
概述:主进程使用
win.webContents.send
发送消息,在渲染进程中使用ipcRenderer.on
接收消息。常用于:从主进程主动发送消息到渲染进程,例如下面这个需求:
需求:应用加载6秒后,主动给渲染进程发送一个消息,内容是:hello
实现步骤:
- 在index.html页面中添加相关元素,render.js中添加对应脚本
- 在preload.js中使用
ipcRenderer.send('信道','参数')
接收消息,并配置回调函数 - 在main.js主进程中在合适的时候,使用
win.webContents.send('信道','参数')
发送消息
本文原文发布于2024年11月29日,部分内容可能随Electron框架版本更新而产生变化,请读者注意。
热门推荐
伊丹奶酪:卡路里、营养价值和烹饪食谱
炸鸡翅怎么做?详细步骤图文教程
意大利特色的风情奶酪:斯卡莫扎(Scamorza)
山药奶酪球 宝宝健康食谱
奶酪中含有哪些营养成分?奶酪狂欢!每一口都是营养与美味的盛宴
再婚的财产怎么分?一文详解再婚财产分割关键问题
再婚丧偶后财产如何分配
《黑神话:悟空》复刻27处山西古建,带动当地文旅搜索激增
茯苓:一文读懂功效、挑选与食用方法
自制酸奶的方法和步骤
时尚妈妈教你做黄瓜酸奶慕斯(清爽又健康的夏日甜点)
午后时光:金骏眉&茉莉花的绝美搭配
银行营业厅必备神器:防弹玻璃
高端汽车必备:防弹玻璃有多牛?
防弹玻璃:守护现代建筑安全的透明卫士
经济舱选座全攻略:如何选到最舒适的座位?
人工智能 | 知识图谱全解析:探寻AI的智慧之源
8个好用的提示词策略,教你把AI玩溜 |《自然-人类行为》
水在城中城在水中,武汉是一座拥有独特地理特征的神奇城市
从广东到武汉温度个位数,冷到透骨,分析:5次“倒春寒”来了
斗罗大陆古月娜的沦陷:银龙王的心路历程与抉择
重症肌无力患者的呼吸康复策略
上海市中西医结合医院重症肌无力专科:传承创新 打造中西医一体化诊疗模式
传动对决:大众朗逸的6AT变速箱与干式双离合哪个更优?
大众朗逸空气滤芯更换指南:位置、步骤与注意事项全解析
朗逸6AT变速箱来自哪家品牌?
积分仅差1分!曼城主场迎战英超最大黑马诺丁汉森林
海西律师讲述再婚继承纠纷知识
冬季猫咪护眼指南:常见眼部疾病与护理方法
英超夏窗收官:切尔西领跑支出榜,曼城实现1.133亿英镑盈利