【问题标题】:Identifiying primary electron window识别初级电子窗口
【发布时间】:2019-03-05 23:35:50
【问题描述】:

我有一些代码在 Electron 中的多个渲染器之间共享。我希望这些渲染器知道它们是主窗口还是子窗口之一。我想知道是否有一种快速的方法让渲染器知道它的 ID 是什么。

目前我正在使用以下方法来确定渲染器何时是主要渲染器。

在渲染器 javascript 中

import { ipcRenderer } from 'electron';
const isMainRenderer = ipcRenderer.sendSync('main-renderer-check');

在主/后台javascript中

ipcMain.on('main-renderer-check', (event) => {
    event.returnValue = event.sender.id === 2;
});

这可行,但解决这个问题的方法似乎有点复杂。

还有其他更直接的方法吗?

【问题讨论】:

    标签: electron


    【解决方案1】:

    根据 Electron 在 ipcRenderer, the event.sender.id property 上的文档,等于消息来源的 webContents 的 ID。

    因此,应该可以通过 WebContents 使用 Electron's remote module 检索当前窗口的唯一 ID:

    import { remote } from 'electron';
    const isMainRenderer = remote.getCurrentWebContents ().id === 2;
    

    【讨论】:

    • 谢谢。我一直在搜索文档,但我一定只是一直读到那一点。