gpt4 book ai didi

javascript - (ipcMain Eletronjs)事件未定义

转载 作者:行者123 更新时间:2023-12-03 12:27:52 25 4
gpt4 key购买 nike

最近,我一直在开发Windows应用程序(使用Electronjs)来加密文件。我想要它,这样当我按下渲染器中的第一个按钮时,它将发送到主进程,要求它打开打开文件对话框。我尝试了这段代码。

renderer.js

firstButton.addEventListener("click", openFile)
function openFile() {
ipc.send('open-the-open-dialogue');
}
ipc.on('file-picked', function(event, arg) {
console.log(arg);
}

main.js
ipc.on('open-the-open-dialogue',  
function () {
var filenames = dialog.showOpenDialogSync({ properties: ['openFile'] });
if(!filenames) {
dialog.showErrorBox("ERROR!", "You didn't pick a file to encrypt.")
}
event.reply('file-opened', filenames[0]);
}
);

当我尝试此代码时,出现错误,提示未定义事件。那我在做什么错?

最佳答案

您的IPC命令错误。您应该在渲染器进程上使用ipcRenderer,在主进程上使用ipcMain

例子:

Main.js

const { ipcMain } = require('electron')
ipcMain.on('asynchronous-message', (event, arg) => {
console.log(arg) // prints "ping"
event.reply('asynchronous-reply', 'pong')
})

ipcMain.on('synchronous-message', (event, arg) => {
console.log(arg) // prints "ping"
event.returnValue = 'pong'
})

Renderer.js

const { ipcRenderer } = require('electron')
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')) // prints "pong"

ipcRenderer.on('asynchronous-reply', (event, arg) => {
console.log(arg) // prints "pong"
})


您可以阅读有关 Electron IPC from here的信息

关于javascript - (ipcMain Eletronjs)事件未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61209263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com