子窗口IPC通信
2024-05-25 20:53:07
我们这样创建的子窗口是没有通信能力的
//创建浏览器 newllq := cef.NewChromiumBrowser(pnlQuark, nil) //创建浏览器窗口 newllq.WindowParent().SetAlign(types.AlClient) //全屏 newllq.Chromium().SetDefaultURL("https://m.quark.cn/") // 设置加载的页面地址 newllq.CreateBrowser() // 创建浏览器
必须是在 主窗口中 通过 a 标签的_blank 这种超链接 这样弹出的子窗口才能使用IPC
解决办法是:
我们需要改子窗口实现一个回调函数:
//当收到进程消息的时候 newllqChromium.SetOnProcessMessageReceived(func(sender lcl.IObject, browser *cef.ICefBrowser, frame *cef.ICefFrame, sourceProcess consts.CefProcessId, message *cef.ICefProcessMessage) bool { log.Println("子窗口收到进程消息") return true })
这样就可以用时IPC通信了,是子窗口就能收到我们发出的信号了