关于渲染进程间通信,ipcRenderer.sendTo接收不到消息的问题

新手上路,请多包涵

项目是直接用electron-vue生成的,然后在index.js new了一个mainWindow和一个mainWindow的子窗口

定义了全局变量获取两个窗口的弹窗,然后写了一个简单的demo
main窗口放一个按钮点击发送信号
// 子窗口id是通过global获取的
ipcRenderer.sendTo(子窗口id, channel, 'test')

子窗口接收
接收的ipcRenderer.on 放在create()里面
然后运行一直接收不到,用npm run build打包出来的程序运行是可以接收到的
我看github上部分这样用的项目也是这样通信的,但是我down下来运行也是运行不了,而且我在windows和mac机上都不行,网上基本没找到答案
所以请问有没有碰到过类似情况解决了的,或者哪个大佬能帮忙解答一下的
看别人也是这么写的,我运行就不行,感觉是缺什么。。。

阅读 7.3k
2 个回答
✓ 已被采纳新手上路,请多包涵

出现这个问题的原因是electron的版本太高了,后来换成低版本的发现是OK的,至于打包出来的没有问题就很奇怪了
之前electron版本是 4.1.5 后来改成3.0.0

新手上路,请多包涵

使用窗口的webContents.id号就可以解决这个问题,比如 mainWindow.webContents.id,因为sendTo的函数原型中第一个参数就是webcontentid

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题