// In renderer process (web page).
const { ipcRenderer } = require('electron');
let exec = eval => ipcRenderer.sendSync('synchronous-message', eval);
exec("win.setSize(500,500)");
console.log(exec("win.getBounds()"));
console.log(exec("app.getVersion()"));
// In the Main process.
ipcMain.on('synchronous-message', (event, arg) => {
event.returnValue = eval(arg);
})
字符串 这是从主进程向渲染进程发送消息的方法。(官方示例)
// In renderer process (web page).
ipcRenderer.on('test', (event, arg) => {
console.log(arg) // 123
})
// In the Main process.(after loaded you can send msg to renderer process)
win.webContents.on('did-finish-load', () => {
win.webContents.send('test',123);
})
// In renderer process (web page).
const ipcRenderer = require('electron').ipcRenderer;
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"
// In the Main process.
ipcMain.on('synchronous-message', function(event, arg) {
console.log(arg); // prints "ping"
event.returnValue = 'pong';
});
let {ipcRenderer} = require('electron');
ipcRenderer.sendSync('sync', 'Im the message from the renderer');
// Listen for sync message from renderer process
ipcMain.on('sync', (event, arg) => {
console.log(arg); // Print Im the message from the renderer
});
4条答案
按热度按时间nhjlsmyf1#
ipcMain
* 没有这样的功能。但是,您可以通过以下步骤异步实现几乎相同的结果:ipcMain
回调中。event.sender.send
回复渲染器进程中的ipc消息,结果使用这种方法计算sum的虚拟示例如下所示:
字符串
型
jutyujz02#
在渲染器进程中访问主进程对象的最简单方法(同步)
字符串
这是从主进程向渲染进程发送消息的方法。(官方示例)
型
hzbexzde3#
我尝试做同样的事情,我得到的最接近的是,首先从IPCRenderer发送消息,然后从收到的IPCMain事件中返回你想要的内容,这是一段代码:
字符串
xiozqbni4#
是的,可以从IpcRenderer向IpcMain发送同步消息
字符串
我建议你访问这篇文章,VJEKOSLAV RATKAJEC,他很好地解释了de ipcMain到ipcRenderer之间的通信,反之亦然.
友情链接:http://electron.rocks/different-ways-to-communicate-between-main-and-renderer-process/