基于.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
国内的人开发的,没研究过,貌似收费的。
node-webkit
园子里的人开发的,非常不错的点子,node和chromium的结合,赞
https://github.com/rogerwang/node-webkit/
http://www.cnblogs.com/zhchbin/
qt
我在这方面花费了大量的时间和精力,结果是一个坑跟着一个坑,但到现在还是不忍放弃
http://qt-project.org/downloads
open-webkit-sharp
园友推荐的,我大概看了一下介绍,感觉很不错的样子!
https://code.google.com/p/open-webkit-sharp/
另外
这里说到的很多资源都是园友在上一篇文章中提到的。
谢谢你们。
三:
CEF有两个版本,CEF1和CEF3
CEF1是单进程的,实现了更多的特性,内存使用更少,与客户端应用更能完美的结合,使用的是WebKit的API,但是FLASH无法在这个框架中正常播放,不支持html5的音频和视频,只支持NPAPI插件。关于NPAPI插件的相关知识,请参阅这里:http://developer.chrome.com/extensions/npapi.html(好像要FQ)
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++功底(不用很高)也能看懂这里的例子
十一:
说实在的,这个项目还是有挺多的坑的,我已经碰到了好几个。
跌跌撞撞总算走过来了,我一步一步的把我的经验都分享给园友
请持续关注我的后续文章
基于.net开发chrome核心浏览器【二】的更多相关文章
- 基于.net开发chrome核心浏览器【七】
这是一个系列的文章,前面六篇文章的地址如下: 基于.net开发chrome核心浏览器[六] 基于.net开发chrome核心浏览器[五] 基于.net开发chrome核心浏览器[四] 基于.net开发 ...
- 基于.net开发chrome核心浏览器
本文转载自:http://www.cnblogs.com/liulun/archive/2013/04/20/3031502.html 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一 ...
- 基于.net开发chrome核心浏览器【四】
原文:基于.net开发chrome核心浏览器[四] 一: 上周去北京出差,给国家电网的项目做架构方案,每天都很晚睡,客户那边的副总也这样拼命工作. 累的不行了,直接导致第四篇文章没有按时发出来. 希望 ...
- 基于.net开发chrome核心浏览器【三】
原文:基于.net开发chrome核心浏览器[三] 本篇我们讲解怎么用CefGlue开发一个最简单的浏览器 一: CefGlue是建立在Cef项目之上的,Cef项目是C/C++的项目:CefGlue只 ...
- 基于.net开发chrome核心浏览器【一】
原文:基于.net开发chrome核心浏览器[一] 说明: 这是本系列的第一篇文章,我会尽快发后续的文章. 源起 1.加快葬送IE6浏览器的进程 世界上使用IE6浏览器最多的地方在中国 中国使用IE6 ...
- 基于.net开发chrome核心浏览器【五】
一:本篇将解决的问题 本章主要为了解决一下几个问题: 1.JsDialog的按钮错位的问题 我们开发出的浏览器,在有些操系统上调用alert,confirm之类的对话框时,确定和取消按钮会出现错位的情 ...
- 基于.net开发chrome核心浏览器【一】(转)
http://www.cnblogs.com/liulun/archive/2013/03/18/2874276.html 说明: 这是本系列的第一篇文章,我会尽快发后续的文章. 源起 1.加快葬送I ...
- 基于.net开发chrome核心浏览器【六】
写在前面: 距离发这个系列的上一篇文章已经过去两个多月了 因为工作上不涉及这一部分的内容,兼且琐事缠身,一直无力动笔写这个系列的第六篇文章 然而,有很多朋友都关注这个系列,希望我能再写写. 写文章有人 ...
- 自己开发chrome插件生成二维码
摘要: 最近在开发微信项目时,需要在微信调试,所以经常会在微信中输入本地服务地址,输入起来特别麻烦,所以自己就想了想微信中的扫一扫,然后开发了这款chrome插件,将当前url生成二维码,用微信扫一扫 ...
随机推荐
- cryptography
密码关还是有很多变态的题的,整理一下力所能及的吧. Circular Crypto(Asis-CTF2013) 这题只给了一张图片 仔细看一下就知道,这是几个单独的环,把它们分别整理出来.因为看着眼花 ...
- 使用 PyCrypto 进行 AES/ECB/PKCS#5(7) 加密
东篱 使用 PyCrypto 进行 AES/ECB/PKCS#5(7) 加密 2013/06/05 · tech PyCrypto 是流行的 Python 加密/解密库.但是其 AES 的 ECB 模 ...
- php与文件操作
一.目录操作 首先是从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: <?php $base_dir="fil ...
- 英特尔的VT-d技术是什么?
VT-d技术: 我们知道对于服务器而言,很重要的一个组成部分就I/O,CPU的计算能力提升虽然可以更快地处理数据,但是前提是数据能够顺畅的到达CPU,因此,无论是存储,还是网络,以及图形卡.内存等,I ...
- windows下eclipse跑junit报错:CreateProcess error=206
from:http://isuifengfei.iteye.com/blog/1684262 windows下,eclipse中运行junit出现错误提示: Exception occurred ex ...
- SilkTest Q&A 4
Q31.如何在inc文件里面写函数? A31.在你在inc文件(例如demo.inc)里写好函数以后,你需要使用Use path/Use file来指定指定它们. 在SilkTest中->Opt ...
- osgEarth开发之OSG解构——失败的尝试
概述 本文在吸收了<最长的一帧>以及相关参考资料的基础之上解读OSG的基础数据结构,渲染方法. 实现 在这第一部分里,要理解的是run函数的实现,因为以下这一段证明了它的重要性和强大的能力 ...
- sharepoint 2010 显示和隐藏Ribbon区域条
在sharepoint 2010的页面中,我们在页面的最上方,有一条深灰色的Ribbon工具栏,如下图,这里可以通过下面的脚本,做一些脚本,来控制它的隐藏和显示. 最后把这些脚本,放在v4.maste ...
- 在安装mysql出现的错误以及解决方法
因为手贱更新了一下驱动,结果导致无线网卡出了问题.然而就算是从官网上下载了驱动各种折腾也没有弄好,心里特别堵.无奈只有重装系统这一条路了.这里表示特别难过,因为电脑上东西实在太多了,而且各种环境变量. ...
- 类型自动转换引起的误解——QString可以赋值数字1,也能直接与0比较,真是昏倒!
看以下代码,能编译通过: void MainWindow::on_pushButton_clicked() { QString str = "test"; ) { QMessage ...