当前位置: 首页 > news >正文

electron 通信总结

默认开启上下文隔离的情况下
在这里插入图片描述

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

主进程

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

  2. 在 electron 中创建 preload.ts 文件,从 electron 中引入的 contextBridge 桥接方法
    暴露全局变量 eleapi 到渲染进程。并添加要调用的主进程方法。通过 ipcRenderer.on/invoke方法调用主进程方法。

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
    在这里插入图片描述

渲染进程:
3. 页面通过 window.eleapi.xxx访问暴露的方法。
在这里插入图片描述

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

在这里插入图片描述
preload文件中,通过 ipcRenderer.on(“mainNotify”, cb);监听到消息,向 web 派送 mainNotifyCallback
在这里插入图片描述

http://www.lryc.cn/news/341771.html

相关文章:

  • [基础] Unity Shader:顶点着色器(vert)函数
  • 什么是数据库的三大范式?
  • ASP.NET网上图书预约系统的设计
  • 双色球案例【C#】
  • 【LeetCode刷题】739. 每日温度(单调栈)
  • Docker-Consul容器服务更新与发现
  • 练习题(2024/5/6)
  • 利用matplotlib和networkx绘制有向图[显示边的权重]
  • Springboot+Vue项目-基于Java+MySQL的教学资料管理系统(附源码+演示视频+LW)
  • 从NoSQL到NewSQL——10年代大数据浪潮下的技术革新
  • 巴菲特股东大会5万字完整版来了!
  • LY/T 1860-2022 非甲醛类热塑性树脂胶合板检测
  • 信息管理与信息系统就业方向及前景分析
  • TCP的三次握手过程
  • Microsoft 推出 Phi-3 系列紧凑型语言模型
  • Retrofit库中,Call​;Retrofit使用举例;@GET,@PUT区别;
  • # 怎么关闭 win10 系统中自带的【文件预览】功能?关闭WIN10【文件预览】功能的方法
  • 强化学习玩flappy_bird
  • JavaWeb请求响应概述
  • 【IDEA】IDEA常用快捷键
  • Redission分布式锁 watch dog 看门狗机制
  • 人脸识别系统架构
  • 数塔问题(蛮力算法和动态规划)
  • 启动 Redis 服务和连接到 Redis 服务器
  • 我独自升级崛起在哪下载 我独自升级电脑PC端下载教程分享
  • STM32F4xx开发学习—GPIO
  • 引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展
  • 扩展学习|一文读懂知识图谱
  • ubuntu中的docker记录(3)——如何安装nvidia-docker以更好地支持GPU加速计算应用程序的运行
  • MLP实现fashion_mnist数据集分类(1)-模型构建、训练、保存与加载(tensorflow)