zoukankan      html  css  js  c++  java
  • electron 主进程,和渲染进程的通信

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

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

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

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

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

    渲染进程 html 片段

    <div class="mdui-row-xs-3">
      <div class="mdui-col" @click="sendMinimize">
        <i class="mdui-icon material-icons">&#xe5cf;</i>
      </div>
      <div class="mdui-col" @click="sendmMximize">
        <i class="mdui-icon material-icons">&#xe3c1;</i>
      </div>
      <div class="mdui-col" @click="sendClose">
        <i class="mdui-icon material-icons">&#xe5cd;</i>
      </div>
    </div>
    

    渲染进程 js 片段

    const { ipcRenderer } = require('electron');
    ipcRenderer.on('index-minimize', (e, msg) => {
          // 监听主进程发来的事件...
    })
    
    sendClose() {// closr
      ipcRenderer.send('master-close', 'render-index')
    },
    sendMinimize() {// minimize
      ipcRenderer.send('master-minimize', 'render-index')
    },
    sendmMximize() {// maximize
      ipcRenderer.send('master-maximize', 'render-index')
    }
    

    主进程 js 代码片段

    const {
      app,// 控制应用程序寿命的模块。
      BrowserWindow, // 模块创建原生浏览器窗口。
      ipcMain
    } = electron;
    
    let mainWindow;
    
    ipcMain.on('master-close', (e, msg) => {
      // 关闭master进程
      app.quit();
    })
    
    ipcMain.on('master-minimize', (e, msg) => {
      // 最小化  master进程
      mainWindow.minimize();
      // 主进程向 渲染进程发送消息
      // e.sender.send('index-minimize', 'master')
    })
    
    ipcMain.on('master-maximize', (e, msg) => {
      // 最大化  master进程
      if (mainWindow.isMaximized()) {
        mainWindow.unmaximize()
      } else {
        mainWindow.maximize();
      }
    })
    
  • 相关阅读:
    160-13. 罗马数字转整数
    159-118. 杨辉三角
    158-190. 颠倒二进制位
    157-461. 汉明距离
    156-412. Fizz Buzz
    155-278. 第一个错误的版本
    154-108. 将有序数组转换为二叉搜索树
    153-101. 对称二叉树
    152-234. 回文链表
    秒杀程序架构演进
  • 原文地址:https://www.cnblogs.com/ajanuw/p/8799342.html
Copyright © 2011-2022 走看看