CEF 问题

来源:互联网 发布:优集品假货知乎 编辑:程序博客网 时间:2024/06/10 20:19

1.cef 无法退出
2.嵌入网页的combobox的下拉列表位置不对
3.移动窗口不刷新有黑屏
4.嵌入pepper flash 打开带swf的网页,有黑窗闪一下就消失的问题
5.无法第一时间获取页面已经绘制好(不是全部加载完毕loadend回调来的很迟)
6.如何支持pepper flash
7.如何将cef中创建的窗口嵌入你程序中作为子窗口

1.cef 无法退出

创建隐藏的win32窗口作为消息处理窗口,而不是RootWindowWin(这会交给内置的管理器来管理)
使用单独线程来等待主程序进程句柄,WaitForSingleObject返回后,就个cef主进程主线程发送退出消息
主线程收到消息后,使用如下代码退出
MainContext::Get()->GetRootWindowManager()->CloseAllWindows(true);
CefQuitMessageLoop();

2.嵌入网页的combobox的下拉列表位置不对

移动顶层popup窗口时,通过ipc给cef发送消息,然后找到对应的窗口,调用:
scoped_refptr wnd = …
wnd->GetBrowser()->GetHost()->NotifyMoveOrResizeStarted();

3.移动窗口不刷新有黑屏

移动顶层popup窗口时,MoveWindow(browser_child,…)

4.嵌入pepper flash 打开带swf的网页,有黑窗闪一下就消失的问题

等待解决,暂时无思路
可利用线索是:只要网页中存在swf的,且打开pepperflash支持,就有黑窗闪屏
猜测:黑色闪窗 是控制台窗口,CreateProcess 中最后几个参数是可以变更标准控制台输入输出

5.无法第一时间获取页面已经绘制好(不是全部加载完毕loadend回调来的很迟)

CefLoadHandler 的几个消息的时机都不是很早很即时
有时候,网页已经能够显示,OnLoadEnd都还没有调用

6.如何支持pepper flash

UCBrowser/QQBrower都能支持flash
看其目录下面是否有什么关于flash的文件
查到都存在PepperFlash
搜索PepperFlash 找到方案http://bbs.kafan.cn/thread-1582093-1-1.html
增加参数测试

7.如何将cef中创建的窗口嵌入你程序中作为子窗口

不能将跨进程的父窗口句柄传到CreateWindow中,要以空父窗口句柄创建,之后再SetParent
8.当页面有下载连接时,默认是打开一个空网页窗口,然后弹出保存对话框,期望是直接弹保存对话框
9.如何使用缓存来加快指定页面的打开速度