我正在尝试做一个简单的ipc.send和ipc.on,但由于某些原因,我在这个电子需求上变得不确定。
libs/custom-menu.js:
'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‘。
发布于 2016-03-07 15:06:22
BrowserWindow模块仅在主进程中可用,ipcRenderer模块仅在渲染器进程中可用,因此无论您在哪个进程中运行此代码,它都不会工作。我猜由于ipcRenderer不可用,所以您试图在主进程中运行此代码。
发布于 2018-10-15 16:17:39
我知道这个答案对你来说可能太晚了,但对其他人来说
如果您尝试从渲染器进程访问任何主进程模块,您将需要通过远程模块,
const {BrowserWindow} = require('electron').remote请参阅文档remote
发布于 2019-09-04 13:27:17
适用于那些无法在react应用程序ipcRenderer或任何需要预加载文件的环境中工作的人。
https://stackoverflow.com/questions/35812592
复制相似问题