【发布时间】:2022-01-11 03:08:32
【问题描述】:
目前我有一个带有保存按钮的电子菜单。当按下此保存按钮时,我希望向渲染器进程发送一个事件,以便渲染器处理该事件。
这是我尝试过的:
菜单来源
const menuTemplate = [
{
label: "File",
submenu: [
{
label: "Save",
accelerator: "Ctrl+S",
click: () => {
BrowserWindow.getFocusedWindow().webContents.send("save");
}
},
]
},
]
渲染器源
ipc.on("save", () => {
console.log("save");
})
预加载源
import { contextBridge, ipcRenderer } from "electron";
contextBridge.exposeInMainWorld("ipc", { on: ipcRenderer.on });
尝试此操作时,按下保存按钮时没有任何输出,包括没有错误。我可以确认 Electron 正在使用正确的菜单并且 click() 函数正在执行。我也可以确认ipc.on确实是在渲染器中定义的。
我怎样才能让它工作?提前致谢。
【问题讨论】:
-
你在渲染器中哪里定义了
ipc? -
在
preload.js,我现在编辑了帖子以显示预加载源代码。
标签: javascript electron ipc