zoukankan      html  css  js  c++  java
  • Electron中页面之间的通信

    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
            }
        })
  • 相关阅读:
    hdu 4297 One and One Story 夜
    hdu 4280 Island Transport 夜
    1389. Roadworks 夜
    hdu 4289 Control 夜
    hdu 4291 A Short problem 夜
    hdu 4284 Travel 夜
    1080. Map Coloring 夜
    正则中的转义符\
    起重复出现作用的量词*和+
    安卓的权限大全和动态使用安卓权限
  • 原文地址:https://www.cnblogs.com/flamestudio/p/12243842.html
Copyright © 2011-2022 走看看