我是个电子新手,即将建立一个迷你application.In电子,我不知道这种情况:当主进程从另一个渲染进程获得信号时,主进程需要发送消息到渲染进程A。我试过了:
ipc.on('signalA', function() {
ipc.sendSync('signalB');});
但事实证明,sendSync不是一个函数。
发布于 2017-05-03 12:47:11
在electron中,您可以在主进程(main.js)和渲染器进程(浏览器窗口)之间进行通信。
main.js:
const {app, BrowserWindow} = require('electron');
const path = require('path');
const url = require('url');
let win = new BrowserWindow({width: 400, height: 275});
win.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}));
win.webContents.on('did-finish-load', () => {
win.webContents.send('asynchronous-message', 'ping');
});
ipcMain.on('synchronous-reply', (event, arg) => {
console.log(arg) // prints "ping1"
event.returnValue = 'pong'
});
ipcMain.on('asynchronous-message', (event, arg) => {
console.log(arg) // prints "ping2"
event.sender.send('asynchronous-reply', 'pong2');
});在网页(index.html)中:
<script>
const {ipcRenderer} = require('electron');
ipcRenderer.on('asynchronous-message', (event, arg) => {
console.log(arg); // prints "ping"
const res = ipcRenderer.sendSync('synchronous-reply', 'ping1');
console.log(res); // prints "pong"
});
ipcRenderer.send('asynchronous-message', 'ping2')
ipcRenderer.on('asynchronous-reply', (event, arg) => {
console.log(arg) // prints "pong2"
});
</script>你可以在这里阅读文档:ipc-main.md
https://stackoverflow.com/questions/43750654
复制相似问题