码迷,mamicode.com
首页 > 其他好文 > 详细

Electron中页面之间的通信

时间:2020-01-30 22:58:38      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:怎么   list   span   render   关系   学习   erer   send   web   

Electron的运行环境为Chromium + Node.js, 而Chromium采用的是多进程机制,

也就是说每个页面都是一个独立的进程(渲染进程),因此页面之间是没有直接关系的,

要想进行通信,需要借助主进程作为桥梁。

所以我们首先先来学习主进程和渲染进程怎么通信:

1. 渲染进程---->主进程

发送端:

  ipcRenderer.send(channel, data)

接收端:

  ipcMain.on(channel, listener)

2. 主进程---->渲染进程

发送端:

  ① 被动发送

  在主进程通过ipcMain.on接收到渲染进程的消息时,可以通过listener函数的event参数得到发送者, 回复消息,

  event.sender.send(channel, data)

  ② 主动发送

  win(要发送给的渲染进程窗体对象变量).webContents.send(channel, data)

 接收端:

  ipcRenderer.on(channel, listener)

 

有了以上背景知识,页面间通信就很简单了,页面1发送事件给主进程,主进程再发送事件给页面2即可。

 

注:

在Electron 5.x以后的版本,渲染进程默认没有启用Node.js环境, 

在创建窗体时需要指定启用Node环境,否则require命令在渲染进程中将不支持,无法导入electron中的ipcRenderer。

    let win = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    })

 

Electron中页面之间的通信

标签:怎么   list   span   render   关系   学习   erer   send   web   

原文地址:https://www.cnblogs.com/flamestudio/p/12243842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!