zoukankan      html  css  js  c++  java
  • Electron 主进程与渲染进程之间的通 信(同步通信、异步通信)

    有时候我们想在渲染进程中通过一个事件去执行主进程里面的方法。或者在渲染进程中通知
    主进程处理事件,主进程处理完成后广播一个事件让渲染进程去处理一些事情。这个时候就
    用到了主进程和渲染进程之间的相互通信。
    Electron 主进程,和渲染进程的通信主要用到两个模块:ipcMain 和 ipcRenderer
    ipcMain:当在主进程中使用时,它处理从渲染器进程(网页)发送出来的异步和同步信息,
    当然也有可能从主进程向渲染进程发送消息。
    ipcRenderer: 使用它提供的一些方法从渲染进程 (web 页面) 发送同步或异步的消息到主
    进程。 也可以接收主进程回复的消息。
    场景 1:渲染进程给主进程发送异步消息:
    //渲染进程
     const { ipcRenderer } = require('electron') i
    pcRenderer.send('msg',{name:'张三'}); //异步

    主进程:

    //主进程 
    const { ipcMain } = require('electron'); 
    ipcMain.on(''msg'',(event,arg) => { 
    
    })
    场景 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'; })
  • 相关阅读:
    eclipse运行maven项目报错:找不到ContextLoaderListener、IntrospectorCleanupListener
    音乐播放器项目计划进度安排
    音乐播放器计划书
    抽奖程序
    显示默认目录中的所有文件名
    单字符和多字符的文件输出
    求和
    第二周 登录小界面
    第一周随笔
    小组图书管理系统项目进度表
  • 原文地址:https://www.cnblogs.com/loaderman/p/12147274.html
Copyright © 2011-2022 走看看