进程与进程之间的通信

主进程

在 Electron 里,运行 package.json 里 main 脚本的进程被称为主进程。在主进程运行的脚本可以以创建 web 页面的形式展示 GUI。

渲染进程

由于 Electron 使用 Chromium 来展示页面,所以 Chromium 的多进程结构也被充分利用。每个 Electron 的页面都在运行着自己的进程,这样的进程我们称之为渲染进程。

在一般浏览器中,网页通常会在沙盒环境下运行,并且不允许访问原生资源。然而,Electron 用户拥有在网页中调用 Node.js 的 APIs 的能力,可以与底层操作系统直接交互。

主进程与渲染进程之间的通信

  • 可以从主进程中直接发送消息给渲染进程
//main.js
//从主进程发送消息给渲染进程

mainWindow.webContents.send('main-process-messages', 'main-process-messages show')
//index.html,渲染进程中接收消息
const electron = require('electron')
const ipcRenderer = electron.ipcRenderer
ipcRenderer.on('main-process-messages', function(event, message){
    alert(message)
})
  • 通过ipcRenderer和ipcMain进行通信

    这个是从渲染进程中发起

//index.html,渲染进程
onst electron = require('electron')
const ipcRenderer = electron.ipcRenderer
function sendTypeOne() {
    //向主进程发送消息
    ipcRenderer.send('MainMsgFromRender','hellow')
}

// 监听主进程返回的消息
ipcRenderer.on('RenderMsgFromMain', function (event, arg) {
    alert(arg)
})
//main.js
const electron = require('electron')
//主进程
const ipcMain = electron.ipcMain
ipcMain.on('MainMsgFromRender',function (event, arg) {
    console.log(arg)
    event.sender.send('RenderMsgFromMain',arg)
})
  • 通过全局变量
//main.js
global.sharedObject = {
    newTel: '000'
}
//index.html,渲染进程
const remote = require('electron').remote
function sendTypeTwo() {
    alert(remote.getGlobal('sharedObject').newTel)
}

做了一个小demo,可以下载看看了解更清楚。
demo

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值