electron 通信总结

默认开启上下文隔离的情况下

渲染进程调用主进程方法:

主进程

  1. 在 main.js 中, 使用 ipcMain.handle,添加要处理的主进程方法
    const { ipcMain } = require("electron");

  2. 在 electron 中创建 preload.ts 文件,从 electron 中引入的 contextBridge 桥接方法

    暴露全局变量 eleapi 到渲染进程。并添加要调用的主进程方法。通过 ipcRenderer.on/invoke方法调用主进程方法。

ts 复制代码
const { contextBridge, ipcRenderer } = require("electron");

contextBridge.exposeInMainWorld("eleapi", {
  mainNotifyCallback: (cb) => {
    ipcRenderer.on("mainNotify", cb);
  },
  tcpRevDataCallback: (cb) => {
    ipcRenderer.on("tcpRevData", cb);
  },
  tcpSndData: (data) => {
    ipcRenderer.invoke("tcpSendData", data);
  },
  ipccall: async (data) => await ipcRenderer.invoke('ipccall', data),
  getDebugConfig: async () => await ipcRenderer.invoke("getDebugConfig"),
  openWindow: (url) => {
    ipcRenderer.send("openWindow", url);
  }
});
  1. 在 main.js 创建窗口的方法中,预加载 preload.ts

渲染进程:

  1. 页面通过 window.eleapi.xxx访问暴露的方法。

主进程向渲染进程发送消息

preload文件中,通过 ipcRenderer.on("mainNotify", cb);监听到消息,向 web 派送 mainNotifyCallback

相关推荐
linx2955 分钟前
单元五 · 对称认知·下:编译与链接
linux·c语言·开发语言·c++·嵌入式硬件
橘色的喵11 分钟前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
Jason_zhao_MR12 分钟前
新国标下DTUFTU设计最优解——米尔基于全志T153核心板_排版优化
linux·单片机·架构·t113i·双处理器·mcu+linux·电力采集
程序员-Benothing16 分钟前
Linux 用户与用户组管理:useradd usermod groupadd 实战
linux·运维·服务器
不可能片场21 分钟前
Electron 主进程热补丁:单行 JS 安全打法
前端·electron
byte轻骑兵25 分钟前
【BlueZ 】util 模块:通用工具函数,源码中高频复用的基础组件
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
M78佐菲30 分钟前
51单片机学习笔记(2)
linux·笔记·嵌入式硬件·学习·51单片机
C++ 老炮儿的技术栈34 分钟前
西门子 S7 常用存储区(I/Q/M/T/C/DB/PI/PQ)
linux·开发语言·c++·windows·qt·io
云飞云共享云桌面41 分钟前
不用批量采购工作站|液压设备制造,SolidWorks 多人共享服务器方案
运维·服务器·网络·数据库·制造
T1mzhou43 分钟前
ARM64 Linux 6.10 内核驱动(13):bus.c / driver.c 总线两张表,驱动怎么挂上去
linux·服务器·c语言·arm开发·arm