CefSharp 初用遇到的一些问题及解决方法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > CefSharp 初用遇到的一些问题及解决方法

CefSharp 初用遇到的一些问题及解决方法

 2013/10/28 22:57:58  网助  博客园  我要评论(0)
  • 摘要:之前用WebBrowser,打开网页很卡,但因为并是太要求速度和体验,所以可以显示html就可以了。但是,现在要求显示速度,最主要问题是WebBrowser控件的UserAgent,其实并不完全是IE(之前大家都以为是),而是7.0,有一个办法可以在注册表中修改,修改为10.0,但是在测试网站,如:http://whatsmyua.com/,显示的是WebBrowser,而不是IE10。应该是这个问题,使很多网站都会提示,版本太低或不支持这款浏览器,这样没办法正常显示,虽然只有少部分
  • 标签:方法 解决方法 解决 问题 一些问题 ARP

    之前用WebBrowser,打开网页很卡,但因为并是太要求速度和体验,所以可以显示html就可以了。但是,现在要求显示速度,最主要问题是WebBrowser控件的UserAgent,其实并不完全是IE(之前大家都以为是),而是7.0,有一个办法可以在注册表中修改,修改为10.0,但是在测试网站,如:http://whatsmyua.com/  ,显示的是WebBrowser,而不是IE10。应该是这个问题,使很多网站都会提示,版本太低或不支持这款浏览器,这样没办法正常显示,虽然只有少部分,但遇到关键的网站干着急。

     找到CefSharp这个开发包,下载了源码和执行文件,速度比WebBrowser要快不卡了,而且有错误提示的网站也都正常显示了。但在分析源码时,遇到一些问题,由于独自研究耽搁一天多,以后也可能还会遇到,在此总结下。

     源码分为几个工程,有WinForm和Wpf两种演示,虽然我很喜也更善长Wpf,但因为软件效率的原因,还是只看WinForm,有支持的VC托管工程CefSharp和CefSharp.WinForms,另外有mvc方式的示例c#工程CefSharp.Example,执行文件依赖的是CefSharp.dll和CefSharp.WinForms.dll。另外,需要加入icudt.dll和libcef.dll,生成操作设置无,输出设为新复制,因为CefSharp.dll需要,否则将会报错。另外,CefSharp是x86编辑,需要修改使用的工程属性在编译目标设置为x86,否则有编译警告。

    将locales及其下所有都设置为输出,里面有个en-US.pak文件,如没有,则应用程序会启动显示错误退出。

    再将devtools_resources.pak 设置为输出,否则调用devtools时将报错不能打开。

    还有一个非常奇怪没能解决的问题,想封装WebView(CefSharp.WinForms.dll实现的浏览器类),到一个UserControl,但如果拖放这个控件到其它控件上或窗体上,则会报文件找不到CefSharp.dll或其依赖项,Reflector也没能找到到底是缺了什么。只要是在userControl引用WebView的实例就会报错,只能使用反射建立的办法迂回建立了。谁知道原因和办法,请发给我:)

    上面说的CefSharp.Example定义了一个绕的方案的解决控制与视图间的关联,这样真的耦合低么,但我的需求很简单,就是按WebBrowser的设计封装一个相同方法的类,用来替换它。但后来发现,确实有必要,因为Cef的结构很繁杂,可能是功能多的原因吧。

    IWebBrowser 有XXXXXHandle属性,用来控制浏览器的运行。之前我需要的不打开新窗口,只转向,需要实现ILifeSpanHandler,然后返回true证明处理了。

    Cef分为系统初始化和设置参数,还有BrowserView的参数设置。更多的控制需要详看CefSharp.Example,我仔细看过,没什么不理解处。至于前面的VC工程实在没有细看的耐心了,暂时不需要。

发表评论
用户名: 匿名