webContents.send vs webContents.executeJavaScript

我的网络应用程序使用ipcRender.send向系统询问电子ipcMain.on的值.这个过程是异步的,所以一旦电子得到系统的价值,它就会回到应用程序中.传递价值的清洁方法是什么?我应该使用什么方法?为什么?

webContents.send

听取事件

应用

window.myFunction = data => setState(data)
ipcRenderer.on('my-function', (ev, data) => window.myFunction(data));

电子

mainWindow.webContents.send('my-function', value)

webContents.executeJavaScript

功能调用

应用

window.myFunction = data => setState(data)

电子

mainWindow.webContents.executeJavaScript(`myFunction(${data});`)

最佳答案 我认为主要区别在于ipcRenderer.on更灵活和可扩展,因为它允许您使用ipcRenderer模块,它是EventEmitter的一个实例.它可以添加,删除侦听器(订阅者).它还允许您同时发送 – 同步和异步消息.

我发现的webContents.executeJavaScript只允许您从某些HTML API方法中删除限制,这些方法只能由用户的手势调用.

对于前者requestFullScreen:

webContents.executeJavaScript(code[, userGesture])

将userGesture设置为true将删除此限制.

webContents

点赞