ipcMain https://electronjs.org/docs/api/ipc-main

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

ipcRenderer https://electronjs.org/docs/api/ipc-renderer

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

使用自定义的 最小化,最大化,关闭按钮

渲染进程 html 片段

  1. <div class="mdui-row-xs-3">
  2. <div class="mdui-col" @click="sendMinimize">
  3. <i class="mdui-icon material-icons"></i>
  4. </div>
  5. <div class="mdui-col" @click="sendmMximize">
  6. <i class="mdui-icon material-icons"></i>
  7. </div>
  8. <div class="mdui-col" @click="sendClose">
  9. <i class="mdui-icon material-icons"></i>
  10. </div>
  11. </div>

渲染进程 js 片段

  1. const { ipcRenderer } = require('electron');
  2. ipcRenderer.on('index-minimize', (e, msg) => {
  3. // 监听主进程发来的事件...
  4. })
  5. sendClose() {// closr
  6. ipcRenderer.send('master-close', 'render-index')
  7. },
  8. sendMinimize() {// minimize
  9. ipcRenderer.send('master-minimize', 'render-index')
  10. },
  11. sendmMximize() {// maximize
  12. ipcRenderer.send('master-maximize', 'render-index')
  13. }

主进程 js 代码片段

  1. const {
  2. app,// 控制应用程序寿命的模块。
  3. BrowserWindow, // 模块创建原生浏览器窗口。
  4. ipcMain
  5. } = electron;
  6. let mainWindow;
  7. ipcMain.on('master-close', (e, msg) => {
  8. // 关闭master进程
  9. app.quit();
  10. })
  11. ipcMain.on('master-minimize', (e, msg) => {
  12. // 最小化 master进程
  13. mainWindow.minimize();
  14. // 主进程向 渲染进程发送消息
  15. // e.sender.send('index-minimize', 'master')
  16. })
  17. ipcMain.on('master-maximize', (e, msg) => {
  18. // 最大化 master进程
  19. if (mainWindow.isMaximized()) {
  20. mainWindow.unmaximize()
  21. } else {
  22. mainWindow.maximize();
  23. }
  24. })

electron 主进程,和渲染进程的通信的更多相关文章

  1. 使用electron进行原生应用的打包(2)---主进程与渲染进程之间的通信

    上一篇讲了使用electron进行打包的配置相关文件,这篇主要讲electron中很重要的通信方式. 首先解释一个概念: electron打包的应用包含两个部分 electron的环境(node),也 ...

  2. 17-7-20-electron中主进程和渲染进程区别与通信

    老规矩,先吐槽,再记录. 今天被上司教育了将近一个小时.因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~ 事情全部做完,提交以后关闭issue! electr ...

  3. 研究Electron主进程、渲染进程、webview之间的通讯

    背景 由于某个Electron应用,需要主进程.渲染进程.webview之间能够互相通讯. 不过因为Electron仅提供了主进程与渲染进程的通讯,没有渲染进程之间或渲染进程与webview之间通讯的 ...

  4. Electron:主进程和渲染进程

  5. Visual Studio Code调试electron主进程

    Visual Studio Code调试electron主进程 作者: jekkay 分类: electron 发布时间: 2017-06-11 14:56  一·概述 此文原出自[水滴石]: htt ...

  6. Electron结合React,在渲染进程中使用 node 模块

    Electron结合React,在渲染进程中使用 node 模块 问题 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron.当在Reac ...

  7. Android SharePreference 在主进程和次进程间共享数据不同步出错

      SharedPreference作为android五大存储(网络,数据库,文件,SharedPreference,contentProvider)之中最方便使用的一个,从类名上来看就不是一个存储大 ...

  8. Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

    主调度器 在内核中的许多地方, 如果要将CPU分配给与当前活动进程不同的另一个进程, 都会直接调用主调度器函数schedule, 从系统调用返回后, 内核也会检查当前进程是否设置了重调度标志TLF_N ...

  9. C++和C#进程之间通过命名管道通信(上)

    C++和C#进程之间通过命名管道通信(上) "命名管道"是一种简单的进程间通信(IPC)机制.命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支 ...

随机推荐

  1. 【Storm】一张图搞定Storm的运行架构

  2. 微软BI 之SSIS 系列 - Lookup 组件的使用与它的几种缓存模式 - Full Cache, Partial Cache, NO Cache

    开篇介绍 先简单的演示一下使用 Lookup 组件实现一个简单示例 - 从数据源表 A 中导出数据到目标数据表 B,如果 A 数据在 B 中不存在就插入新数据到B,如果存在就更新B 和 A 表数据保持 ...

  3. ionic 001

    安装和穿件app npm install -g cordova ionic 使用模板创建app ionic start myApp blank ionic start myApp tabs ionic ...

  4. 学校公文办公处理系统_基于ASP.NET和Swfupload、FlashPaper2.2、校讯通短信发送的开发

    学校新来了一个主管教学的副校长,他对他以前工作学校的公文处理系统表示高度留念,于是乎叫我们也开发一个. 我就参考了那个学校的办公管理系统,发现其实功能也蛮简单的,就是一个文件上传下载的功能,选择用户组 ...

  5. QT程序打包发布

    本来感觉这是一个简单的操作,今天看见群里有人在问这个问题,他说网上查了很多都不成功,突然就想把自己初学的时候记录一下! 题目谢了QT程序的打包发布,那就是两步骤:打包+发布! 注释:这篇博文用的是Qt ...

  6. ROS actionlib学习(二)

    在ROS actionlib学习(一)中的例子展示了actionlib最基本的用法,下面我们看一个稍微实际一点的例子,用actionlib计算斐波那契数列,并发布反馈(feedback)和结果(res ...

  7. SQL语句调优三板斧

    改装有顺序------常开的爱车下手 你的系统中有成千上万的语句,那么优化语句从何入手呢 ? 当然是系统中运行最频繁,最核心的语句了.废话不多说,上例子: 这是一天的语句执行情况,里面柱状图表示的是对 ...

  8. SQL使用技巧

    SQLServer 数据库变成单个用户后无法访问问题的解决方法 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@S ...

  9. CentOS 7.4安装Nginx 1.14.0

    一.安装所需环境   1.gcc 安装         yum install gcc-c++    

  10. Adobe Illustrator for Mac(矢量图处理软件)破解版安装

    1.软件简介    Adobe Illustrator CC 是 macOS 系统上一款矢量绘图工具,可以说是是业界标准矢量绘图标杆,软件通过形状.色彩.效果及印刷样式,展现您的创意想法.在处理大型复 ...