基于.net开发chrome核心浏览器【二】

开发 后端
说实在的,这个项目还是有挺多的坑的,我已经碰到了好几个。跌跌撞撞总算走过来了,我一步一步的把我的经验都分享给园友。

一:

上一篇的链接:

基于.net开发chrome核心浏览器【一】

二:

相关资源介绍:

chrome Frame:

让IE有一颗chrome的心,看起来不错,但我没有深入研究这个东西。

http://www.google.com/chromeframe?hl=zh-CN&quickenable=true

https://developers.google.com/chrome/chrome-frame/

WebKit.Net

已经有一段时间没人更新这个开源项目了,没有研究过

http://sourceforge.net/projects/webkitdotnet/

CEF

研究过,很不错的类库,但是是C和C++写的

https://code.google.com/p/chromiumembedded/

http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html(园友谭振林写的相关文章)

Xilium.CefGlue

基于CEF,用.net包装过,很不错,我就用的这个类库(Xilium.CefGlue/3)

https://bitbucket.org/xilium/xilium.cefglue/wiki/Home

O.N.E

国内的人开发的,没研究过,貌似收费的。

http://www.one-lab.net/

node-webkit

园子里的人开发的,非常不错的点子,node和chromium的结合,赞

https://github.com/rogerwang/node-webkit/

http://www.cnblogs.com/zhchbin/

qt

我在这方面花费了大量的时间和精力,结果是一个坑跟着一个坑,但到现在还是不忍放弃

http://qt-project.org/downloads

另外

这里说到的很多资源都是园友在上一篇文章中提到的。

谢谢你们。

三:

CEF有两个版本,CEF1和CEF3

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

CEF3是多进程的,使用异步消息的方式来完成主进程和其他进程的通信(其他进程有可能是Webkit,也有可能是V8的解析引擎进程),使用的是 chromium官方的内容呈现API,支持NPAPI和PPAPI插件,有一个单独的进程用于调试,相对于CEF1来说,虽然可以播放FLASH等视频,但是还有很多问题没有处理掉,社区里的人认为CEF1更稳定一些,CEF3的issues列表,请参阅这里:https://code.google.com/p/chromiumembedded/issues/list

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

还有一个CEFSharp的项目,是用C++/CLI的方式来调用CEF类库的,请参见:https://github.com/chillitom/CefSharp

四:

下载最新版的CEF的动态链接库

下载地址为:http://xilium.bitbucket.org/cefglue/

一定要在这个页面来下载!因为只有这个页面给出的动态链接库才是Xilium.CefGlue所支持的

目前看到的是3.1353.1236版本(我没有下载debug版本的)

五:

下载最新的Xilium.CefGlue代码

下载地址:https://bitbucket.org/xilium/xilium.cefglue/overview

右侧点“下载”就可以了

六:

把下载到的两个压缩包都解压缩

把\cef_binary_3.1453.1236_windows_xilium\Release目录里的文件复制出来

粘帖到:\xilium-xilium.cefglue-50e94efc4182\CefGlue.Demo.WinForms\bin\Debug目录下

七:

打开\xilium-xilium.cefglue-50e94efc4182\目录下的解决方案文件

把CefGlue.Demo.WinForms设为启动项目

注意事项:

1.

把程序集CefGlue.Demo.GtkSharp卸载掉,

这个程序集是给mono平台用的,你也可以把WPF相关的程序集也卸载掉

2.

右键单击CefGlue.Demo.WinForms程序集,点属性,选择调试,

取消选中“启用visual studio承载进程”,

因为CEF3是基于多进程的,VS无能力承载,所以只有取消掉这个选项

3.

右键单击CefGlue.Demo.WinForms程序集,点属性,选择生成,把目标平台改成X86

(这一项如果编译不通过再来修改也无碍)

八:

编译并执行,你就可以看到CefGlue为你写的DEMO了。

你如果线这个DEMO里的代码比较复杂,你也可以看看CefGlue.Client这个程序集这个程序集是个比较简单的DEMO,你也可以按照上面的步骤让这个DEMO跑起来。

九:

上面的DEMO看起来是这个样子的:

在这个DEMO的samples菜单中有几个简单的示例

这给开发者提供方便的,开发者在写自己的程序时,经常会看这几个DEMO

但几个DEMO实在是太少了。

十:

打开cef_binary_3.1453.1236_windows_xilium目录中的工程文件

(这才是CEF项目,前面说的是基于CEF开发的CefGlue项目)

编译并运行

你会看到一个类似这样的界面:

这个DEMO中,主菜单中的test是为开发人员准备的DEMO

明显比CefGlue要多一些!

如果你有一些C和C++功底(不用很高)也能看懂这里的例子

十一:

说实在的,这个项目还是有挺多的坑的,我已经碰到了好几个

跌跌撞撞总算走过来了,我一步一步的把我的经验都分享给园友。

责任编辑:林师授 来源: 博客园
相关推荐

2013-04-22 09:52:04

.netchrome核心开发chrome

2009-03-30 08:56:34

新浪浏览器Chrome

2010-01-28 10:13:43

2009-11-26 10:55:41

2015-01-21 15:45:50

斯巴达浏览器

2011-05-27 15:49:37

Chrome

2009-09-22 09:17:46

谷歌Chrome浏览器

2010-01-10 17:50:17

2012-08-08 09:18:47

Chrome浏览器

2009-07-17 09:16:20

Google Chro浏览器操作系统

2019-02-15 15:15:59

ChromeJavascriptHtml

2013-11-13 15:54:20

Chrome 31浏览器

2009-12-06 09:38:02

Chrome浏览器Avast

2009-03-07 09:57:41

Realplayer捆绑Chrome

2009-12-03 10:56:34

谷歌Chrome浏览器

2009-03-25 09:15:00

GoogleChromeRSS

2012-06-11 10:54:44

浏览器全洞悉

2012-02-21 14:39:04

移动浏览器天天浏览器华为

2009-04-20 09:03:01

GoogleChrome浏览器

2012-02-08 09:44:47

GoogleChrome
点赞
收藏

51CTO技术栈公众号