zoukankan      html  css  js  c++  java
  • 进程间通讯electron

    ipcMain

    进程:主进程

    从主进程到渲染进程的异步通信

    ipcMain 是一个 EventEmitter 的实例。 当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息。 从渲染器进程发送的消息将被发送到该模块。

    ipcRenderer

    进程: Renderer

    从渲染器进程到主进程的异步通信

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

    渲染进程间的直接通讯不被允许的,虽然ipcRenderer 是一个 EventEmitter 的实例,可以自己emit自己on

    webContents

    进程:主进程

    webContents 是一个 EventEmitter。 负责渲染和控制网页, 是 BrowserWindow 对象的一个属性。

    主进程与主进程

    1.ipcMain.emit 和 ipcMain.on

    因为ipcMain 是一个 EventEmitter 的实例,可以自己emit给自己on 

    const {ipcMain} = require('electron')
    
    //发事件
    ipcMain.emit(customEventName, params)
    
    //监听事件
    ipcMain.on(customEventName,(event,params)=>{})
    

      

    2.mainWin.webContents.emit 和 mainWin.webContents.on 

    因为webContents 是一个 EventEmitter 的实例,可以自己emit给自己on

    注意:  使用webContents.send在此场景下,webContents.on 监听不到,webContents.send不等同于webContents.emit

    const {ipcMain, BrowserWindow} = require('electron')
    
    app.on('ready', () => {
        const mainWin = new BrowserWindow()
      //发事件
      mainWin.webContents.emit(customEventName, params)
    
      //监听事件
      mainWin.webContents.on(customEventName,(event,params)=>{})
    })
    

    主进程与渲染进程

    假设mainWin是BrowserWindow的一个实例,mainWin.send == mainWin.webContents.send

    主进程-》渲染进程

    const {ipcMain, BrowserWindow} = require('electron')
    
    app.on('ready', () => {
        const mainWin = new BrowserWindow()
      //发事件
      mainWin.webContents.send(customEventName, params)  //或者mainWin.send
    }) 

    // 渲染进程,如render.js 
    const { ipcRenderer } = require('electron') 
    ipcRenderer.on(eventName, handler)
    

      

    渲染进程-》主进程

    //发
    ipcRenderer.send(customEventName,params)
    
    //监听
    ipcMain.on(customEventName,(event,params)=>{})
    

      

    渲染进程与渲染进程

    渲染进程1-》渲染进程2 的实现:

      渲染进程1-》主进程-》渲染进程2

     
     
     
     
     
     
     
     
  • 相关阅读:
    Linux菜鸟起飞之路【三】Linux常用命令
    Linux菜鸟起飞之路【二】Linux基本常识
    Linux菜鸟起飞之路【一】基本知识与Linux的安装
    交换机和路由器区别
    netdom join more ou
    keepalive.conf配置模板
    mysql7.7.22 Gtid主从搭建
    python 列表处理
    python openpyxl模块使用
    mysql5.7
  • 原文地址:https://www.cnblogs.com/baixinL/p/14276580.html
Copyright © 2011-2022 走看看