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

     
     
     
     
     
     
     
     
  • 相关阅读:
    使用Pandas DataFrames在Python中绘制条形图
    在Pandas DataFrames中选择行和列使用iloc,loc和ix
    如何使用[] 、. loc,iloc,.at和.iat
    Pandas 分类数据
    按索引和值对Pandas DataFrame进行排序
    可能需要的建议
    时间线
    第四章-赶路
    第三章-担忧
    lipo命令拆分、合并iOS静态库
  • 原文地址:https://www.cnblogs.com/baixinL/p/14276580.html
Copyright © 2011-2022 走看看