在主要过程中,我创建了一个名为的窗口mainWindow.在按钮上单击,我创建一个新的browserWindow被调用notesWindow.
我想要做的就是从发送数据notesWindow到mainWindow
我所做的是使用IPC发送首先将数据发送notesWindow到主进程,检索主进程上的数据,然后将该数据发送到mainWindow,但mainWindow无法接收发送方事件.将数据发送到主进程工作正常,但从主进程到browserWindow似乎不起作用.
main.js
const ipcMain = require('electron').ipcMain;
ipcMain.on('notes', function(event, data) {
console.log(data) // this properly shows the data
event.sender.send('notes2', data);
});
Run Code Online (Sandbox Code Playgroud)
noteWindow.js
const ipcRenderer = require('electron').ipcRenderer;
ipcRenderer.send('notes', "new note");
Run Code Online (Sandbox Code Playgroud)
mainWindow.js
const ipcRenderer = require("electron").ipcRenderer;
ipcRenderer.on('notes2', function(event, data) {
// this function never gets called
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
谁能解释我做错了什么?提前致谢!
mainWindow无法接收事件,因为它没有被发送到它.该events.sender.send()代码main.js将数据发回给谁发送的notes事件,在这种情况下是noteWindow.因此notes2事件将被发送回noteWindow而不是mainWindow.
要发送notes2活动mainWindow,请结帐webContents.send().这允许主进程通过事件将数据发送到特定窗口.经过一些修改后,main.js它看起来与此类似:
ipcMain.on('notes', function(event, data) {
mainWindow.webContents.send('notes2', data);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6837 次 |
| 最近记录: |