Jason Lee
首页
  • 学习笔记

    • 常用资源
    • html&css
    • webpack
    • vue2.x
    • vue3
    • typescript入门
    • 工程化实践
  • css
  • javascript
  • es6常问
  • 手写代码
  • 错误监控
  • webpack
  • vue框架
  • 浏览器相关
  • 计算机网络
  • 数据结构和算法
  • 学习笔记
工具
首页
  • 学习笔记

    • 常用资源
    • html&css
    • webpack
    • vue2.x
    • vue3
    • typescript入门
    • 工程化实践
  • css
  • javascript
  • es6常问
  • 手写代码
  • 错误监控
  • webpack
  • vue框架
  • 浏览器相关
  • 计算机网络
  • 数据结构和算法
  • 学习笔记
工具
  • 01.安装、搭建项目
  • 02.主进程与渲染进程通讯
    • 主进程与渲染进程通讯
      • 异步消息
      • 同步消息
  • 03.调用动态库
  • electron
jason lee
2021-09-04
目录

02.主进程与渲染进程通讯

# 主进程与渲染进程通讯

通过 ipc(进程间通信)模块允许您在主进程和渲染进程之间发送和接收同步和异步消息.

这个模块有一个版本可用于这两个进程: ipcMain 和 ipcRenderer.

# 异步消息

主进程:



 

 


const { ipcMain } = require("electron");
// 主进程监听渲染器进程发来的异步消息
ipcMain.on("asynchronous-message", function(event, arg) {
  // 主进程向渲染器进程回复异步消息
  event.reply("asynchronous-reply", "pong");
});

渲染器进程:





 


 




const { ipcRenderer } = require("electron");
const asyncMsgBtn = document.getElementById("async-msg");
asyncMsgBtn.addEventListener("click", function() {
  // 渲染器进程向主进程发送异步消息
  ipcRenderer.send("asynchronous-message", "ping");
});
// 渲染器进程监听主进程发来的异步消息
ipcRenderer.on("asynchronous-reply", function(event, arg) {
  const message = `异步消息回复: ${arg}`;
  console.log(message);
});

# 同步消息

主进程:




 


const { ipcMain } = require("electron");
ipcMain.on("synchronous-message", function(event, arg) {
  // 返回同步消息的值
  event.returnValue = "pong";
});

渲染器进程:





 




const { ipcRenderer } = require("electron");
const syncMsgBtn = document.getElementById("sync-msg");
syncMsgBtn.addEventListener("click", function() {
  // 发送同步消息
  const reply = ipcRenderer.sendSync("synchronous-message", "ping");
  const message = `同步消息回复: ${reply}`;
  document.getElementById("sync-reply").innerHTML = message;
});
01.安装、搭建项目
03.调用动态库

← 01.安装、搭建项目 03.调用动态库→

Theme by Vdoing | Copyright © 2019-2022 jason lee | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式