如何在渲染器中将IPC消息从渲染器发送到Webview?

时间:2018-12-31 12:54:14

标签: javascript node.js electron

使用Electron的ipcRenderer,是否可以向<webview>元素发送消息?

我尝试过:

var webview = document.getElementsByTagName("webview")[0];
webview.send("test", "testing");

ipcRenderer.send("test", "testing");

,并尝试使用以下方法在webview内接收它:

ipcRenderer.on("test", function(e) {
// do something with (e)
})

window.addEventListener("test", function() {
// do something with (e)
})

但是webview并没有收到这些方法。

2 个答案:

答案 0 :(得分:1)

根据electron webview documentation,您所拥有的东西似乎应该可以正常工作。

但是,在Webview文档的顶部,它确实有this warning,这可能会导致您当前正在测试的版本出现一些问题:

  

警告

     

Electron的webview标签基于Chromium的webview,该网站正在发生巨大的架构变化。这会影响Web视图的稳定性,包括渲染,导航和事件路由。目前,我们建议不要使用webview标记,而应考虑使用其他替代方案,例如iframe,Electron的BrowserView或完全避免嵌入内容的体系结构。

答案 1 :(得分:0)

An example of sending messages from the main process to the renderer process:

ipcRenderer.on("test", (event, message) => {
  console.log(message)
})

为我工作。