首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子要求ipcRenderer不工作

电子要求ipcRenderer不工作
EN

Stack Overflow用户
提问于 2016-03-05 17:48:30
回答 5查看 13.1K关注 0票数 7

我正在尝试做一个简单的ipc.send和ipc.on,但由于某些原因,我在这个电子需求上变得不确定。

libs/custom-menu.js:

代码语言:javascript
复制
'use-strict';

const BrowserWindow = require('electron').BrowserWindow;
const ipcRenderer = require('electron').ipcRenderer;

exports.getTemplate = function () {
  const template = [
    {
      label: 'Roll20',
      submenu: [
        {
          label: 'Player Handbook',
          click() {
            console.log('test');
          },
        },
      ],
    },
    {
      label: 'View',
      submenu: [
        {
          label: 'Toggle Fullscreen',
          accelerator: 'F11',
          click(item, focusedWindow) {
            if (focusedWindow) {
              focusedWindow.setFullScreen(!focusedWindow.isFullScreen());
            }
          },
        },
        {
          label: 'Toggle Developer Tools',
          accelerator: (function () {
            if (process.platform === 'darwin') {
              return 'Alt+Command+I';
            }
            return 'Ctrl+Shift+I';
          }()),
          click(item, focusedWindow) {
            if (focusedWindow) {
              focusedWindow.toggleDevTools();
            }
          },
        },
        {
          label: 'Reload',
          accelerator: 'F5',
          click() {
            BrowserWindow.getFocusedWindow().reloadIgnoringCache();
          },
        },
      ],
    },
    {
      label: 'Random Generators',
      submenu: [
        {
          label: 'World Generator',
          click() {
            ipcRenderer.send('show-world');
          },
        },
      ],
    },
  ];
  return template;
};

错误是无法读取未定义的属性'send‘。

EN

回答 5

Stack Overflow用户

发布于 2016-03-07 15:06:22

BrowserWindow模块仅在主进程中可用,ipcRenderer模块仅在渲染器进程中可用,因此无论您在哪个进程中运行此代码,它都不会工作。我猜由于ipcRenderer不可用,所以您试图在主进程中运行此代码。

票数 4
EN

Stack Overflow用户

发布于 2018-10-15 16:17:39

我知道这个答案对你来说可能太晚了,但对其他人来说

如果您尝试从渲染器进程访问任何主进程模块,您将需要通过远程模块,

代码语言:javascript
复制
const {BrowserWindow} = require('electron').remote

请参阅文档remote

票数 1
EN

Stack Overflow用户

发布于 2019-09-04 13:27:17

适用于那些无法在react应用程序ipcRenderer或任何需要预加载文件的环境中工作的人。

preload setup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35812592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档