当前位置: 首页 > news >正文

electron进程间通信- 从渲染进程到主进程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、进程间通信(IPC)
  • 二、使用步骤
  • 三、使用流程
  • 四、总结
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

本文讲解了Electron中的IPC机制,即进程间通信,特别是单向通信过程,从渲染进程到主进程的通信方式。通过IPC,可以在渲染进程中发送消息到主进程,主进程接收后处理相应任务,如更新窗口标题。具体实现中,渲染进程使用IPC renderer的send方法发送消息,主进程通过IPC main的on方法监听并处理消息。视频演示了如何通过按钮点击事件更新窗口标题,展示了IPC在Electron应用中的实际应用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、进程间通信(IPC)

  • 进程间通信(IPC)是Electron中构建功能丰富桌面应用程序的关键部分。
  • 主进程和渲染进程在Electron的进程模型中具有不同的职责,因此IPC是执行许多常见任务的唯一方法。
  • IPC的两个管道名称:ipcMain和ipcRenderer。

二、使用步骤

在Electron中,content.setTitle(title)是Electron的BrowserWindow API原生方法,用于设置窗口标题

在这里插入图片描述
自定义的setTitle是我们通过preload.js暴露给渲染进程的方法名

它们通过IPC通信关联起来:

  • 渲染进程调用window.electron.setTitle(title)

  • preload.js通过ipcRenderer.send(‘setTitle’, title)发送消息

  • 主进程通过ipcMain.on(‘setTitle’, …)监听并调用content.setTitle(title)

三、使用流程

为了更清楚地展示这个流程,我可以输出 main.js 中相关部分的代码:

从代码中可以看到完整的流程:

  1. 在preload.js中,我们定义了一个自定义方法setTitle:
contextBridge.exposeInMainWorld('electron', {setTitle: (title) => { ipcRenderer.send('setTitle', title) }
})
  1. 在 main.js 中,我们监听’setTitle’事件:
ipcMain.on('setTitle', (event,title) => {const content = BrowserWindow.fromWebContents(event.sender)content.setTitle(title)
})

这里的content.setTitle(title)调用的是Electron原生的BrowserWindow.setTitle()方法

四、总结

自定义的setTitle是我们自己定义的方法名,用于渲染进程调用;content.setTitle()是Electron原生的API方法,它们通过IPC通信的’setTitle’事件名称关联起来


总结

例如:以上就是今天要讲的内容,本文仅仅简单介绍了这种设计模式是Electron中常见的安全通信方式,通过preload脚本暴露有限的API给渲染进程。

http://www.lryc.cn/news/619684.html

相关文章:

  • Python open 函数详解:参数用法与文件操作实战指南
  • 美团搜索推荐统一Agent之需求分析与架构设计
  • Queue参考代码
  • CompletableFuture介绍及使用方式
  • 闹钟时间到震动与声响提醒的实现-库函数版(STC8)
  • 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估计、贝叶斯回归、贝叶斯计算)实践
  • 计算机网络——协议
  • LangGraph 指南篇-基础控制
  • Linux软件编程3.(文件IO和目录IO)
  • 谷歌、facebook、tiktok广告账户多开怎么安全?亚马逊、ebay、shopee多店铺怎么做好?看看adspower工具,注册免费试用及实用技巧分享
  • 美团搜索推荐统一Agent之交互协议与多Agent协同
  • 在es中安装kibana
  • 动静态库
  • ICCV 2025 | 4相机干掉480机位?CMU MonoFusion高斯泼溅重构4D人体!
  • 内容索引之word转md工具 - markitdown
  • (cvpr2025) IceDiff: 高分辨率北极海冰预报
  • duiLib 利用布局文件显示一个窗口并响应事件
  • 基于UniApp的新大陆物联网平台温湿度检测系统开发方案
  • 在JVM跑JavaScript脚本 | Oracle GraalJS 简介与实践
  • 【AI论文】GLM-4.5:具备智能体特性、推理能力与编码能力的(ARC)基础模型
  • Avalon-MM协议
  • 浅层神经网络
  • SimD小目标样本分配方法
  • 开发避坑指南(24):RocketMQ磁盘空间告急异常处理,CODE 14 “service not available“解决方案
  • 设计原则之【抽象层次一致性(SLAP)】,方法也分三六九等
  • 从零到一:TCP 回声服务器与客户端的完整实现与原理详解
  • Linux LNMP配置全流程
  • 机器学习之词向量转换
  • 第5章 学习的机制
  • 对比学习中核心损失函数的发展脉络