我的Web应用程序使用ipcRender.send
向 Electron ipcMain.on
询问系统中的值。该过程是异步的,因此一旦 Electron 从系统获取了值,便会发起对应用程序的调用。传递值的更清洁方法是什么?我应该使用哪种方法,为什么?
webContents.send
听事件
应用程序
window.myFunction = data => setState(data)
ipcRenderer.on('my-function', (ev, data) => window.myFunction(data));
Electron
mainWindow.webContents.send('my-function', value)
webContents.executeJavaScript
函数调用
应用程序
window.myFunction = data => setState(data)
Electron
mainWindow.webContents.executeJavaScript(`myFunction(${data});`)
最佳答案
我认为主要区别在于ipcRenderer.on
更灵活和可扩展,因为它允许您使用ipcRenderer
模块,它是EventEmitter
的实例。它可以添加,删除监听器(订户)。它还允许您同时发送-同步消息和异步消息。
从我发现的webContents.executeJavaScript
中,您可以删除某些HTML API方法中的限制,这些方法只能由用户的手势来调用。
对于前。 requestFullScreen
:
webContents.executeJavaScript(code[, userGesture])
将
userGesture
设置为true
将消除此限制。webContents