webContents.send vs webContents.executeJavaScript

时间:2017-04-21 11:14:49

标签: javascript ipc electron

我的网络应用使用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});`)

1 个答案:

答案 0 :(得分:2)

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

我发现的

webContents.executeJavaScript只是让您从某些HTML API方法中删除限制,这些方法只能通过用户的手势调用。

对于前。 requestFullScreen

webContents.executeJavaScript(code[, userGesture])

userGesture设置为true将取消此限制。

webContents