Electron 之通讯模块ipcMain 和 ipcRenderer

news2024/12/23 10:20:58

 

Electron一个使用HTML、CSS和JavaScript开发桌面应用程序的框架。Electron可以生成在Windows、macOS和Linux上运行的应用程序,借助Electron可以把我们的web端应用直接移植到桌面端而无需再次开发,这样我们可以使用同一套代码在不同平台上运行应用,极大的缩短了开发时间。

ipcMain:当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息,当然也有可能从主进程向渲染进程发送消息。

ipcRenderer: 使用它提供的一些方法从渲染进程 (web 页面) 发送同步或异步的消息到主进程。 也可以接收主进程回复的消息。

场景 1:渲染进程给主进程发送异步消息:

//渲染进程

const { ipcRenderer } = require('electron');

ipcRenderer.send('msg',{name:'张三'}); //异步
//主进程

const { ipcMain } = require('electron');

ipcMain.on(''msg'',(e,data) => {
    //data=消息对象
})
场景 2:渲染进程给主进程发送异步消息,主进程接收到异步消息以后通知渲染进程

//渲染进程

const { ipcRenderer } = require('electron')
ipcRenderer.send('msg',{name:'张三'}); //异步
//主进程

const { ipcMain } = require('electron');
ipcMain.on('msg',(event,arg)=> {
   event.sender.send('reply','pong');
})
//渲染进程

const { ipcRenderer } =require('electron');

ipcRenderer.on('reply',function(event, arg) {
        console.log(arg); // prints "pong"
});
场景 3:渲染进程给主进程发送同步消息

//渲染进程

const { ipcRenderer } = require('electron')
const msg = ipcRenderer.sendSync('msg-a');
console.log(msg)
//主进程

ipcMain.on('msg-a',(event)=> {
  event.returnValue = 'hello';
})
场景 4:主进程通知渲染进程执行操作

//主进程

BrowserWindow.getFocusedWindow().webContents.send('replay','new 111');
//渲染进程

const { ipcRenderer } =require('electron');

ipcRenderer.on('reply',function(event, arg) {
    console.log(arg); // prints "pong"
});
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/21266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据收集面可视化

数据收集面可视化(Data Collector Surface Visualization)分析选项允许用户指定模型中的某一表面,在光线追迹的过程中收集光线数据,并显示或者输出该面的照度(或相关的物理量)。该分析选项允许计算&#xf…

电脑网页打不开提示错误err connection怎么办?

网页打不开显示err_connection_reset网络错误,怎么解决err_connection_reset网络错误?下面我们就来看看解决电脑err_connection_reset网络错误的方法,请看下文详细介绍。 方法一:组件注册 1、我们点下键盘的winR,输入…

2. 选择排序

2.1 内存的工作原理 需要将数据存储到内存时,你请求计算机提供存储空间,计算机给你一个存储地址。 需要存储多项数据时,有两种基本方式——数组和链表。 2.2 数组和链表 有时候,需要在内存中存储一系列元素。 使用数组意味着所…

ElasticSearch面试

Welcome to Elastic Docs | Elastic 1. ES的结构和底层实现 ES的整体结构? 一个 ES Index 在集群模式下,有多个 Node (节点)组成。每个节点就是 ES 的Instance (实例)。每个节点上会有多个 shard (分片)&#xff0…

koa框架(二) mvc 模式及实现一个koa框架的web服务

mvc三层架构 mvc, 即 model 、controller、view;mvc模式将model、view、controller分离;使用mvc分层是系统更加灵活,扩展性更强。让程序更加直观、复用性更强、可维护性更强。 model 负责数据访问;controller 负责消息…

嵌入式设备文件系统构建——增加用户登录功能

1、修改inittab文件 #first:run the system script file ::sysinit:/etc/init.d/rcS# 进入命令行 #::askfirst:-/bin/sh#添加执行登录验证 ::sysinit:/bin/login::ctrlaltdel:-/sbin/reboot #umount all filesystem ::shutdown:/bin/umount -a -r #restart init process ::res…

2022-11-16 几种三角函数的图形

为了方便查看几个函数的关系图,记录一下几种三角函数的大致图像。 三角函数:tan⁡(x)\tan(x)tan(x),cos⁡(x)\cos(x)cos(x),sin⁡(x)\sin(x)sin(x)。 三角函数:tan⁡(x2)\tan(\dfrac{x}{2})tan(2x​),cos…

盘点 三款高可用的机器学习模型 web页面化的工具(一)

笔者只是抛砖引玉,把三款看到的在本篇简单的介绍。 如果有其他更好的欢迎留言推荐,后续笔者会对这三款做一一的学习。 文章目录1 streamlit2 Gradio3 codepen1 streamlit 笔者之前写过该专题: python︱写markdown一样写网页,代码…

SpringCloud - 项目搭建

文章目录1.创建父工程项目2.父工程POM配置3.创建RestFul 服务器3.1 支付模块3.1.1 创建module3.1.2 改POM3.1.3 写YML3.1.4 主启动3.1.5 业务类3.2 订单模块3.2.1 创建module3.2.2 改POM3.2.3 写YML3.2.4 主启动3.2.5 业务类4.工程重构1.创建父工程项目 打开IDEA 创建一个Mave…

从零开始的深度学习之旅(1)

目录0.前言1.单层神经网络1.1 单层神经网络基础(线性回归算法)1.2 torch.nn.Linear实现单层回归神经网络的正向传播2.二分类神经网络:逻辑回归2.1 逻辑回归与门代码实现2.2 符号函数2.2.1 sign函数2.2.2 Relu函数2.2.3 tant函数3. 多分类神经网络:Softma…

Vue:实战快速上手

采用实战模式并结合ElementUI 组件库,将所需知识点应用到实际中,以最快速度掌握Vue的使用; 桌面化应用 ElementUI: https://element.eleme.cn/#/zh-CN/ 弹窗 LayUI 的 layer (由于官网已下架,在此使用镜像): https://www.layui.s…

【网页设计】基于HTML在线图书商城购物项目设计与实现_(图书商城10页) bootstarp响应式

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

[附源码]java毕业设计停车场信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

抢购软件使用方法(如何开发抢购软件)

如果做抢购软件的话需要好的协议以及算法,我用的这份协议目前非常稳定,所以今天给大家讲解下抢购软件的流程以及使用方法 01软件设置选项详解 一、无障碍服务 二、使用网路时间 软件第一行一般都是当前设备比XX慢了(快了)XXms&…

Vue3铺垫知识【ES6 模块化、Promise、async/await、EventLoop、宏任务和微任务、总结】

文章目录ES6 模块化1. 回顾:node.js 中如何实现模块化2. 前端模块化规范的分类3. 什么是 ES6 模块化规范4. 在 node.js 中体验 ES6 模块化5. ES6 模块化的基本语法5.15.1.1 默认导出5.1.2 默认导入5.1.3 默认导出的注意事项5.1.4 默认导入的注意事项5.25.2.1 按需导…

Python:Linux下安装Anaconda,可多人使用(内容几乎完整)

前言 前言属于与内容无关的写作意图。要看正文,请直接跳转至本文主要内容。 很久不见。最近手里有很多事,比如,体检、装机、加班。再加上我现在为了速记,会把东西记到跨平台的笔记软件“OneNote”(大画板&#xff0c…

尚医通 (二十六) --------- 科室接口开发

目录一、上传科室接口1. 添加科室基础类2. 上传科室二、查询科室接口三、删除科室接口一、上传科室接口 1. 添加科室基础类 A、添加 model 说明:由于实体对象没有逻辑,我们已经统一导入 com.fancy.yygh.model.hosp.Department B、添加 repository 添…

多元正态分布

最广为使用的基于模型的聚类方法依赖于多元正态分布。多元正态分布是对p个变量正态分布的一种推广。该分布使用一组均值和协方差矩阵∑定义。协方差矩阵是变量间相关性的度量. 协方差矩阵∑由p个方差以及所有变量对的协方差σi,ji≠j)构成。矩阵的行和列均用变量表…

闲活一:一步登天

标题不希望能被人搜到,因为目前没有任何技术含量,可行性也偏低,纯纯的预研阶段。 项目起步阶段是最无从下手的阶段,还是先明确大目标。我这个赛车要做什么,怎样去做。 做什么 我脑中蹦出的大方向是这样的 玩家体…

初识Matter协议

初识Matter协议什么是MatterMatter有什么用Matter的核心优势Matter网络的组网方式什么是Matter Matter的概念最初在2019年12月被提出,当时被称为CHIP(Connected Home Over IP),之后在2021年5月作为全新的连接标准被正式提出。 CHIP是由AWS、Google、App…