角色:远端页面A, electron的预加载页面P,electron main.js简称M
场景:A主动发起通信告诉electron帮我打开新窗口,地址是http://xxx,打开以后麻烦告诉旧窗口oldWindow已经打开了,打开的地址是http://xxx
执行顺序见序号
A:
1、window.helpOpenNewWindow("http://xxx")
5、window.toTelForHasOpen = function(x){
// 好的,我知道了,你打开了x
})
P:
2、window.helpOpenNewWindow = function(url) {
// 这里是收到url要做的事情 我的业务操作都在main.js,因此要告诉M打开新窗口
ipcRenderer.send('ipcDo', url)
}
4、ipcRenderer.on(" hasOpen", function(e, data{ window. toTelForHasOpen (data)})
M:
3、ipcMain.on("ipcDo", (e, data) => {
const newWindow = new BrowserWindow({
width: 300,
height: 300,
....more
})
newWindow.loadURl(data)
oldWindow.webContents.send("hasOpen", data)
})