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

相关推荐
0+1112 分钟前
Linux --IP分片和组装
linux·网络·tcp/ip
Kira Skyler7 分钟前
CVE-2026-99999 deferred-metadata trust inversion 原理分析.md
linux
Initialize-le26 分钟前
服务器时间不准?NTP 时钟同步五步排查
运维·服务器
AR-26710-27 分钟前
Linux Day24——TCP/IP分层与封装
linux·运维
该逃避避28 分钟前
如何利用代理IP进行更好广告验证?
linux·服务器·网络
哇嘎呀41 分钟前
RHCSA题目
java·服务器·前端
周厉1 小时前
ERP系统全景解析:核心模块与业务逻辑框架
java·服务器·前端
水饺编程1 小时前
第2章:Linux 基础,重启命令
linux·c语言·汇编
金色熊族1 小时前
在Qt中使用asan检测内存泄漏(一)
linux·qt·asan
第404号工位1 小时前
“已彻底删除”的照片与文件到底去哪了?我用底层扇区扫描,扒出手机和电脑的幽灵数据
linux·python·架构