Electron 中 webview 如何与主进程渲染进程进行事件监听通信

时光总嘲笑我的痴心妄想 提交于 2021-02-02 06:05:48


webview 调用 加载页 方法通过<webview>.executeJavaScript(code[, userGesture, callback])或者webview.send()发送,而在访客页使用ipcRenderer.on()监听


注意、注意、注意:


访客页需要调用webview所在页面的方法,则需要在webview中加上属性  nodeintegration="true"


访客页(被webview加载的资源页面)也就是webview中src指定的页面(浏览器页面)


if ( window.require('electron') ) {     let ipcRenderer = window.require('electron').ipcRenderer;     ipcRenderer && ipcRenderer.on('webmsg', (e, msg) => {            console.log(msg,'收到的消息');     });     ipcRenderer && ipcRenderer.sendToHost('我已经收到消息了');}

webview所在页面(客户端页面)

let webview = document.getElementById('test');
webview.addEventListener('ipc-message', (event) => { //ipc-message监听,被webview加载页面传来的信息
console.log(event.channel)//最终收到消息输出 子页面信息
})


如果设置了不生效,请在此确认是否在webview标签上设置了nodeintegration="true"的属性


交流

我是老礼,公众号「进军全栈攻城狮」作者 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!



本文分享自微信公众号 - 进军全栈攻城狮(terminals_li)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!