我正在尝试使用ipcRenderer.on()接收到ipcRenderer.send()后将数据传递回渲染器。出于安全原因,我将nodeIntegration设置为false,将contextIsolation设置为true。我已经在渲染器中尝试了ipcRenderer.on(),但似乎不可能,并且任何涉及“require()”的方法都不能在nodeIntegration设置为false的情况下工作。我可以使用什么来传递数据?
q8l4jmvw1#
使用preload.js文件和contextBridge
const {contextBridge, ipcRenderer} = require('electron'); contextBridge.exposeInMainWorld('electron', { toMain:({args}, e) => { ipcRenderer.send(":toMain", {args}); }, fromMain: (callback) => { ipcRenderer.on(":fromMain", callback); return () => { ipcRenderer.removeListener(":fromMain", callback); }; } });
字符串
-将数据从main发送到render:
// main.js mainWindow.webContents.send(":fromMain" , {args});
型
获取渲染过程中的数据:
// render.js window.electron.fromMain((event , value)=> { console.log(value) })
render发送数据到main:
// render.js window.electron.toMain(data)
获取主进程数据:
// main.js ipcMain.on(":toMain" , (event, value)=> { console.log(value) })
1条答案
按热度按时间q8l4jmvw1#
使用preload.js文件和contextBridge
在预加载文件中:
字符串
-将数据从main发送到render:
型
获取渲染过程中的数据:
型
render发送数据到main:
型
获取主进程数据:
型