gpt4 book ai didi

reactjs - 使用按钮在Main和Renderer之间进行通信

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

我了解了如何利用Main.js来避免如今Electron中的某些浏览器限制。我想做一些简单的事情:当有人按下按钮时,我想将"ping"发送到Main。然后,我希望Main发送回"pong",并将其打印在console中。

对于后一种情况,我需要将nodeIntegration设置为false。这是我到目前为止的内容:

//preload.js
window.ipcRenderer = require('electron').ipcRenderer

//Main.js
const electron = require('electron');
const ipc = electron.ipcMain;
function createWindow(){
// set preload and BrowserWindow with nodeIntegration: false
}
ipc.on('request-mainprocess-action', function(event, data) {
console.log("PING RECEIVED: " + data)
event.sender.send('mainprocess-response', "PONG!");
})

//MyReactComponent.js
submit() { // submit button handler
window.ipcRenderer.send('request-mainprocess-action', "PING!");

window.ipcRenderer.on('mainprocess-response', (event, arg) => {
console.log(arg);
})
}

但是,当我单击“提交”按钮时,没有任何 react 。有人可以指出我做错了什么吗?

最佳答案

https://electronjs.org/docs/api/ipc-main

ipc.on('request-mainprocess-action', function(event, data) {
console.log("PING RECEIVED: " + data)
// event.sender.send('mainprocess-response', "PONG!");
event.reply('mainprocess-response', 'PONG!');
})

或者
ipc.on('request-mainprocess-action', function(event, data) {
console.log("PING RECEIVED: " + data)
// event.sender.send('mainprocess-response', "PONG!");
win.webContents.send('mainprocess-response', "PONG!");
})

关于reactjs - 使用按钮在Main和Renderer之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57066123/

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