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

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. 【工具】浏览器插件|Edge浏览器划词翻译插件(可用于翻译PDF文件,截图翻译)

    本文体验版本:Edge v10.1.0 偶然安装了一个国人自13年开发至今的划词翻译浏览器插件,曾经开源,现在闭源. 功能全面到令人落泪. 全面到反手把小绿鲸扔了-- 官方介绍是支持一站式划词 / 截 ...

  2. 【笔记】Excel 2021|VBA不可不说的注意事项(第一篇)|VBA精准控制选择范围、VBA提高运行速度并降低运行时的内存消耗

      最近总是遇到只有Excel表.没有数据库的情况,不太可能让别人搭Python环境来建数据库,但对常用数据库的使用也不太熟悉,也没买服务器不能让别人远程操控.再加上Python操作Excel的效率令 ...

  3. 阻塞式IO

    无法被打断的进程 在进行阻塞IO实验的时候,发现后台运行了/imx6uirqAPP /dev/imx6uirq &之后无法用kill -9 xxx杀死后台进程. 只需要将驱动中的 wait_e ...

  4. Pandas 实现 Excel 多列 转 多行

    也是最近的一个需求, 将一个 Excel 表, 多列转多行, 就把那种行的, 业务人员经常搞的那种垃圾表,给它转为咱熟悉的数据库表的形式, 多列转多行. 还要帮他们处理数据, 恶心得一批, 其实也不一 ...

  5. Python标准库之Collections---Container datatype

    Deques Deques,即 Double-ended-queues,是支持线程安全,内存高效的列表类对象.Deques是可改变的,支持索引等类似于list的操作,然而,我们不能直接对Deques进 ...

  6. Longest Substring Without Repeating Characters---LeetCode进阶路③

    题目描述 Given a string, find the length of the longest substring without repeating characters. Example ...

  7. 面试官说又逮到一个不会用Git的

    这里这写简要,要看具体的步骤及解释清移步:https://www.bilibili.com/read/cv10510952 如果是自己创建仓库写代码上传(demo是自己仓库的自定义名字): git i ...

  8. WPF 的Image 控件 设置 Image.Source 的数据源,可能存在跨线程调用的问题。

    相信很多WPF 的开发,应该都很多用到 Image 这个控件来显示图片.这个图片的来源可以来自各种各样的方式获取到. 我们的组内白板.批注的扫码的功能也用到这个去生成二维码,生成后,二维码显示不出来, ...

  9. ArkUI-x跨平台Bridge最佳实践

    bridge核心架构思想 平台桥接机制是ArkUI-X框架提供的⼀种ArkTs语⾔和平台原⽣语⾔(Java.OC)之间通信的机制,⽅便⼆者互相调⽤.需要说明的是,平台桥接机制必须在打开ArkUI界⾯时 ...

  10. 全面剖析PHP8新特性:JIT编译器如何推动网站性能革命

    本文由 ChatMoney团队出品 在Web开发领域,提高网站的响应速度一直是开发者和企业所追求的目标.随着技术的不断进步,PHP8的发布为我们带来了一个全新的工具--JIT(Just-In-Time ...