我的网络应用使用ipcRender.send
向听取电子ipcMain.on
询问系统中的值。这个过程是异步的,所以一旦电子得到系统的价值,它就会回到应用程序中。传递价值的清洁方法是什么?我应该使用什么方法?为什么?
<小时/>
听取事件
应用window.myFunction = data => setState(data)
ipcRenderer.on('my-function', (ev, data) => window.myFunction(data));
电子
mainWindow.webContents.send('my-function', value)
<小时/>
函数调用
应用window.myFunction = data => setState(data)
电子
mainWindow.webContents.executeJavaScript(`myFunction(${data});`)
答案 0 :(得分:2)
我认为主要区别在于ipcRenderer.on
更灵活,更具可扩展性,因为它允许您使用ipcRenderer
模块,它是EventEmitter
的一个实例。它可以添加,删除侦听器(订阅者)。它还允许您同时发送 - 同步和异步消息。
webContents.executeJavaScript
只是让您从某些HTML API方法中删除限制,这些方法只能通过用户的手势调用。
对于前。 requestFullScreen
:
webContents.executeJavaScript(code[, userGesture])
将userGesture
设置为true
将取消此限制。