9

我正在尝试做一个简单的ipc.send和ipc.on,但由于某些原因,我对这个电子需求没有定义。

libs/custom-menu.js:

“使用-价格”;const BrowserWindow=需要(“电子”)。浏览器窗口;const ipcRenderer=require('electron').ipcRenderer;exports.getTemplate=函数(){常量模板=[{label:'Roll20',子菜单:[{label:'玩家手册',单击(){console.log(“测试”);},},],},{label:'视图',子菜单:[{label:'切换全屏',加速器:“F11”,单击(项目,聚焦窗口){if(聚焦窗口){focusedWindow.setFullScreen(!focusedWindows.isFullScrean());}},},{label:'切换开发人员工具',加速器:(函数(){if(process.platform===“达尔文”){return'Alt+Command+I';}return'Ctrl+Shift+I';}()),单击(项目,聚焦窗口){if(聚焦窗口){focusedWindow.thoggleDevTools();}},},{label:'重新加载',加速器:'F5',单击(){浏览器窗口.getFocusedWindow().reloadIgnoringCache();},},],},{label:'随机生成器',子菜单:[{label:'世界发电机',单击(){ipcRenderer.send(“show-world”);},},],},];返回模板;};

错误是无法读取未定义的属性“send”。

5个答案5

重置为默认值
7

这个浏览器窗口模块仅在主进程中可用ipc渲染器模块仅在渲染器进程中可用,因此无论您在哪个进程中运行此代码,它都无法工作ipc渲染器不可用-您正试图在主进程中运行此代码。

1
1

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

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

const{BrowserWindow}=require('electron').remote

参见文档遥远的

0
0

只适用于那些无法在react应用ipcRenderer或任何需要预加载文件的环境中使用此功能的人。

预加载设置

-1

这些台词对我很管用:

app.commandLine.appendSwitch('ignore-certificate-errors','true')app.commandLine.appendSwitch('allow-insecure-localhost','true')

-2

在渲染器过程中,具有“require”语句的脚本标记需要是:<script type=“javascript”></script>

在没有类型集的脚本标记中放置对require的调用是行不通的。

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.