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

相关推荐
剑之所向38 分钟前
c# modbus大小端
linux·运维·网络
比奇堡派星星39 分钟前
Linux4.4使用AW9523
linux·开发语言·arm开发·驱动开发
顶点多余1 小时前
Linux中的基本命令-2
linux·运维·服务器
比奇堡派星星1 小时前
cmdline使用详解
linux·arm开发·驱动开发
岚天start1 小时前
Docker部署NGINX实现服务四层转发方案
服务器·nginx·docker
yaso_zhang1 小时前
linux 下sudo运行程序,链接找不到问题处理
java·linux·服务器
2501_941886861 小时前
基于法兰克福金融系统实践的高可靠消息队列设计与多语言实现经验总结分享
服务器·前端·数据库
一月是个猫2 小时前
Electron入门指南:从零开始构建跨平台桌面应用
前端·electron
坚强小橙2 小时前
Accessibility 辅助功能总结
electron
飘忽不定的bug2 小时前
记录:编译rockchip libv4l-rkmpp库
linux·libv4l-rkmpp