文档手册

子窗口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通信了,是子窗口就能收到我们发出的信号了