我正在从主要进程向渲染器进程发送消息.
在主要过程中,我正在这样做
const ipcMain = require('electron').ipcMain;
ipcMain.on('asynchronous-message', function(event, arg) {
console.log('m i here');
event.sender.send('asynchronous-reply', 'pong');
});
Run Code Online (Sandbox Code Playgroud)
在渲染器脚本中,我正在这样做
const ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.on('asynchronous-reply', function(event, arg) {
console.log('In renderer again');
});
Run Code Online (Sandbox Code Playgroud)
然而,似乎在渲染过程中没有收到消息.是否有任何我想念的东西..?
谢谢.我终于明白了这个概念.我缺少的整个想法是从渲染器进程启动消息链.实际上我有两个渲染器进程:html 1,html 2.想法是根据html 1中的内容填充html 2.
以下是对我有用的
Main.js
ipcMain.on('Request-from-SOR-Page', function(event, arg) {
var nomenclature = arg;
ipcMain.on('Request-frm-AOR-Page', function(event, arg) {
event.sender.send('Response-To-AOR-Page', nomenclature);
});
});
Run Code Online (Sandbox Code Playgroud)
html的脚本1
const ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.send('Request-from-SOR-Page', aor.nomenclature);
Run Code Online (Sandbox Code Playgroud)
html脚本2
var ipcRenderer = require("electron").ipcRenderer;
ipcRenderer.send('Request-frm-AOR-Page');
ipcRenderer.on('Response-To-AOR-Page', function(event, data) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
我的结论是,为了在主进程和渲染器进程之间进行通信,webContents.send如果存在从主进程发起的独立消息,则渲染器需要启动消息传递或使用.
如果我的假设是真的,请更正.
你从来没有真正发送过任何东西。您只是在 Main 和 Renderer 进程中注册了一个侦听器。
ipcRenderer.send.BrowserWindow#webContents.send.