javascript - 在Electron 1.X版中,如何从一个BrowserWindow发出事件并在另一个BrowserWindow中使用它?

标签 javascript chromium electron

在Electron 1.X版中,如何从一个BrowserWindow发出事件并在另一个BrowserWindow中使用它?

我正在使用 Electron 版本1.2.1。

最佳答案

一种实现方法是使用ipcRendererBrowserWindow实例和main进程之间进行通信。例如,在主过程中,您可能会看到以下内容:-

const electron          = require('electron');
const app               = electron.app;
const BrowserWindow     = electron.BrowserWindow;
let mainWindow, subWindow;

mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    fullscreen: true
});

mainWindow.loadURL('file://' + __dirname + '/../index.html');

subWindow = new BrowserWindow(); // etc

electron.ipcMain
    .on('myMainMessage', function (event, data) {
        // data can be passed from browser window
        subWindow.webContents.send('myPassedMessage', data);
    });

然后,在第一个mainWindow实例中,您可以使用ipcRenderer将消息汇总在一起,如下所示:-
var electron = require('electron');
var ipc = electron.ipcRenderer;

ipc.send('myMainMessage', {
    property: 'someValue'
});

在另一个窗口实例中,您将需要一些JavaScript来监听另一个触发器。像这样的东西:
var electron = require('electron');
var ipc = electron.ipcRenderer;

ipc.on('myPassedMessage', function (event, data) {
    console.log(data); // will be from the mainWindow instance
});

有关更多信息,请咨询the docs on the ipcRenderer section

关于javascript - 在Electron 1.X版中,如何从一个BrowserWindow发出事件并在另一个BrowserWindow中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592192/

相关文章:

javascript 将字符串视为字符数组 - 如何更改它?

chromium - 重新命名 Chromium 的 GUI 图标

javascript - Electron:如何与浏览器窗口通信?

android - android 上的 chromium 中的 kiosk 模式或全屏

Electron:如何为用户数据设置自定义目录(--user-data-dir)

web-applications - 如何将 "PHP.Laravel + VueJS"应用程序移动到混合应用程序?

node.js - 为什么按需node-sp-auth不显示浏览器窗口?

javascript - 添加记录到 Ext.data.ArrayStore

javascript - 原子编辑器。在警报 ("hello"中)有一个错误 [validatequotemarks]

javascript - Google 的 V8 JavaScript 引擎可用于 iOS 吗?