我有一个组成部分:
openNewWindow() {
let child = new BrowserWindow({
modal: true,
show: false,
});
child.loadURL('http://localhost:9080/#/call/' + this.chatEntityId + '?devices=' + JSON.stringify(data));
child.on('close', function () { child = null; });
child.once('ready-to-show', () => {
child.show();
});
child.webContents.on('did-finish-load', () => {
console.log("done loading");
ipcRenderer.send('chanel', "data");
});
}
然后在子窗口组件中:
mounted() {
ipc.on('chanel', (event, message) => {
console.log(message);
console.log(event);
});
}
我尝试了.on
和created()
中的beforeCreate()
并使用this.$nextTick(), with
setTimeout`,但是没有任何效果。
我不想发送一些字符串数据,但是我希望发送对象,但是如您所见,事件简单字符串"data"
不起作用。我没主意了。
我可以看到,这仅适用于如果我执行以下操作的组件的父组件:
event.sender
所以,问题是如何将任何形式的数据从一个窗口传递到另一个窗口?
答案 0 :(得分:0)
好吧,漫长的夜晚之后,解决之后的早晨。
ipcRenderer.send('chanel', someData);
在主要过程中
ipcMain.on('chanel', (event, arg) => {
let child = new BrowserWindow()
// other stuff here
child.loadURL(arg.url)
child.on('show', () => {
console.log("done loading");
child.webContents.send('data', arg);
});
})
在vuejs组件中,用于其他路由arg.url
mounted() {
ipc.on('chanel', (event, message) => {
console.log(message);
console.log(event);
});
}