基于CefGlue的桌面应用开发

前言

若是你想使用WEB技术来开发桌面客户端,而且是想使用的语言也是C#时,那请耐心往下看。使用WEB技术开发桌面客户端的核心其实就是使用一个可以独立运行WEB前端的组件,如WinForm中的WebBrowser,Android平台的WebView,以及Qt提供的WebView,等等。对于桌面客户端开发而言,使用WebBrowser空间依赖于客户端安装的IE浏览器版本,并且IE自己的种种诟病让人望而生畏。而现在,Chrome浏览器日新月异的发展你们有目共睹,并且其使用的核心 CEF 和Webkit同样是开源的。因为Chromium是C/C++开发的,想要在C#中使用须要再次封装,一些基于Chromium的浏览器控件便应运而生。现在,市面上存在的基于Chromium的C#封装有:html

关于这几个项目的优劣, 牛A与牛C之间 作了很是细致的比较,请参看 .NET多种WebKit内核/Blink内核浏览器初步测评报告 。最终优胜的为 Xilium.CefGlue 。此前,本做者使用过 CefSharp ,感受很明显的优势是JS和C#之间的互调很是方便,因为本做者只是使用CefSharp开发一个小工具,因此性能和发布方面的问题暂时未碰到。前端

值得一提的是CEF有两个版本CEF1和CEF3。html5

  • CEF1是单进程的。实现了更多的特性,内存使用更少,与客户端应用更能完美的结合,使用的是WebKit的API,可是FLASH没法在这个框架中正常播放,不支持html5的音频和视频,只支持NPAPI插件。关于NPAPI插件的相关知识,请参阅这里:http://developer.chrome.com/extensions/npapi.html 。git

  • CEF3是多进程的。使用异步消息的方式来完成主进程和其余进程的通讯(其余进程有多是Webkit,也有多是V8的解析引擎进程),使用的是chromium官方- 的内容呈现API,支持NPAPI和PPAPI插件,有一个单独的进程用于调试,相对于CEF1来讲,虽然能够播放FLASH等视频,可是还有不少问题没有处理掉,社区里的人认为CEF1更稳定一些。github

咱们选用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库的,请参见:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home。web

下面咱们就 Xilium.CefGlue 开发桌面应用中须要解决的问题逐一分析。chrome

运行官方Demo

Clone或下载CefGlue

CefGlue的源码地址为 https://bitbucket.org/xilium/xilium.cefglue/ ,里边除了源码,还包含Winform和Wpf的Demo。Clone或者下载下来。windows

下载后,Unload或者删除其中的 CefGlue.Demo.GtkSharp 项目,这个项目是在Linux平台使用的。将CefGlue.Demo.WinForms 设为启动项目。api

下载CEF动态连接库

CefGlue依赖的CEF的 版本支持 请参考 http://xilium.bitbucket.org/cefglue/ 。CefGlue当前支持的CEF的最新版本为3.1650.1503,也就是当前的CEF的最新版本(不算开发分支),下载地址为 http://cefbuilds.com/ 。浏览器

CEF同时提供Linux、Mac、Windows平台的x8六、x64版本,本做者全部的实验均在Windows平台完成,使用的系统为 Windows8 x64 。若是你的机器是x64的,那么x64和x86的CEF版本都可使用。惟一的区别是,若是你使用的是x86的版本,你须要将CefGlue项目的CefGlue.Demo.WinForms 工程属性下的 Build 选项的Platform target设置为x86,而非默认的AnyCPU。咱们以x64平台为例,假设下载下来的文件件为cef_binary_3.1650.1544_windows64。

  • 将 cef_binary_3.1650.1544_windows64/Release/ 或者 cef_binary_3.1650.1544_windows64/Debug/ 下的内容拷贝到CefGlue项目下的 CefGlue.Demo.WinForms/CefGlue.Demo.WinForms/bin/Debug/ 目录下。固然,在实际项目中咱们可能将这些文件拷贝到工程目录的一个文件夹中,而后使用工程属性下的Build Event选项将这些文件拷贝到Debug目录下,具体作法能够参考 怎么用CefGlue开发一个最简单的浏览器 。

  • 将 cef_binary_3.1650.1544_windows64/Resources/locales 目录下的文件拷贝到CefGlue.Demo.WinForms/CefGlue.Demo.WinForms/bin/Debug/locales 目录下。

 

转自:http://www.tuicool.com/articles/MZRnqae

相关文章
相关标签/搜索