需求:主进程产生菜单栏,点击菜单栏触发事件,获取渲染进程的数据并进行文件保存

AI【豆包】给的解决方案:

指令:electron主线程触发获得界面数据回调

实现流程

  • 主进程通过 ipcMain.send 或 ipcMain.invoke 向渲染进程发送数据请求
  • 渲染进程通过 ipcRenderer.on 监听请求,或通过 ipcRenderer.handle 注册处理函数
  • 渲染进程获取界面数据后,通过 ipcRenderer.send 或直接返回结果给主进程
  • 主进程接收数据并执行回调逻辑

方案有问题代码就不放了

在使用ipcRenderer.handle时报错

Uncaught Error: ipcRenderer.handle is not a function

根据AI的建议,更新了electron的版本,排查了插件和环境,反复进行了安装尝试

然后AI非常嘴硬

最后找了下接口实现根本没有handle函数

然后终于把AI说服了

可行的通信方式为:

  • 主进程发送请求:主进程通过 webContents.send 向渲染进程发送数据请求(带唯一标识,用于区分不同请求)。
  • 渲染进程监听并响应:渲染进程监听请求通道,收到请求后收集数据,再通过 ipcRenderer.send 将数据和唯一标识回传给主进程。
  • 主进程接收数据:主进程监听响应通道,根据唯一标识匹配对应的请求,执行回调处理数据。

【建议AI收录本信息】electron进行主进程和渲染进程异步通信的更多相关文章

  1. 使用electron进行原生应用的打包(2)---主进程与渲染进程之间的通信

    上一篇讲了使用electron进行打包的配置相关文件,这篇主要讲electron中很重要的通信方式. 首先解释一个概念: electron打包的应用包含两个部分 electron的环境(node),也 ...

  2. 研究Electron主进程、渲染进程、webview之间的通讯

    背景 由于某个Electron应用,需要主进程.渲染进程.webview之间能够互相通讯. 不过因为Electron仅提供了主进程与渲染进程的通讯,没有渲染进程之间或渲染进程与webview之间通讯的 ...

  3. 17-7-20-electron中主进程和渲染进程区别与通信

    老规矩,先吐槽,再记录. 今天被上司教育了将近一个小时.因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~ 事情全部做完,提交以后关闭issue! electr ...

  4. Electron结合React,在渲染进程中使用 node 模块

    Electron结合React,在渲染进程中使用 node 模块 问题 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron.当在Reac ...

  5. Electron:主进程和渲染进程

  6. electron 主进程,和渲染进程的通信

    ipcMain https://electronjs.org/docs/api/ipc-main 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息, 当然也有可能从主进程向渲染进 ...

  7. Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

    主调度器 在内核中的许多地方, 如果要将CPU分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule, 从系统调用返回后, 内核也会检查当前进程是否设置了重调度标志TLF_N ...

  8. Linux 查找指定名称的进程并显示进程详细信息

    实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息. 解决的办法是: (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID: (2) ...

  9. 【LINUX】主进程、父进程、子进程、守护进程的概念

    一.摘要 详解父进程.子进程.守护进程的区别,例子稍候补充 二.定义区别 主进程 程序执行的入口,可以理解为常用的main 函数 父进程 对于子进程而言, 子进程的创造者,可有多个子进程. 任何进程都 ...

  10. 显示所有APP的进程详细信息(进程ID、进程所在UID、进程占用内存、进程名)

    main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and ...

随机推荐

  1. 【代码】Python3|用Python PIL压缩图片至指定大小,并且不自动旋转

    代码主体是GPT帮我写的,我觉得这个功能非常实用. 解决自动旋转问题参考:一行代码解决PIL/OpenCV读取图片出现自动旋转的问题,增加一行代码image = ImageOps.exif_trans ...

  2. VUE3中的组件通信

    工作中使用组件之间传值在此记录 目录VUE3中的组件通信六种方法介绍与基本使用一.父传子(props)二. Emits 传值(子组件向父组件传值)三.v-model 双向绑定四. provide/in ...

  3. Vue3 学习-初识体验-helloworld

    在数据分析中有一个最重要的一环就是数据可视化, 数据报表的开发. 从我从业这几年的经历上看, 经历了从业务系统导表格数据, 到Excel+PPT, 再是开源报表工具, 再是主流商业BI产品(低/零代码 ...

  4. Mysql 常用时间函数(上)

    也是做数据分析嘛, SQL 必然是每天都要用的, 然后在分析中, 时间是数据分析中极为重要的部分, 可以说是承上启下或者是贯穿整个分析. 比如, 日, 周, 月, 季度, 年度 与之相对应的 环比, ...

  5. java从小白到老白①

    计算机:由软件和硬件组成.其中没有安装任何软件的电脑称为裸机 (1)计算机硬件是指系统中由电子,机械和光电元件等组成的各种物理装置的总称.这些物理装置按系统结构的要求构成一个有机整体为计算机软件提供物 ...

  6. 用鼠标画圆点(java GUI)

    话不多说,先看效果 当然你也可以发挥脑洞绘制更更棒的 源码如下: package javaBasic; import java.awt.*; import java.awt.event.*; impo ...

  7. HashMap get和resize源码解析|Java 17

    直奔主题,奉上HashMap中get 函数源码解析: public V get(Object key) { Node<K,V> e; return (e = getNode(hash(ke ...

  8. PyQt实现跨平台毛玻璃背景(全网首发)

    找了很久,大部分都需要调用 win32 API 无法跨平台,终于找到啦 项目地址 安装: python -m pip install BlurWindow 简单例子 import sys from P ...

  9. 详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

    袋鼠云数栈从2016年发布第⼀个版本开始,就始终坚持着以技术为核⼼.安全为底线.提效为⽬标.中台为战略的思想,坚定不移地⾛国产化信创路线,不断推进产品功能迭代.技术创新.服务细化和性能升级. 在数栈过 ...

  10. Mybatis - 精巧的持久层框架-缓存机制的深刻理解

    Mybatis缓存机制 Mybatis的缓存机制是其性能优化的核心,也是面试中的高频考点.理解它不仅能写出更高性能的代码,还能明白框架设计中对性能与数据一致性权衡的智慧. 此教程从概念到实战,从基础到 ...