CEF(Chromium Embedded Framework, 嵌入式Chromium框架)是C/C++开发的库
目前 Google Chrome(Google浏览器),Chromium浏览器,Opera等都是基于CEF为核心,Webkit引擎的浏览器。
Xilium.CefGlue 是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库。
CEFSharp 是用C++/CLI的方式来调用CEF类库的。
一. 开发环境
VS2012 + VS2012 SP4 + CefSharp
二. 开发步骤(以CefSharp为例)
1. 新建Windows窗体应用程序 CefSharpDemo,
2. 在生成=》配置管理器中,将活动解决方案平台改成 x86 (CEF不能自适应 x86 | x64,必须选择一个目标)
3. 打开 NuGet 程序包管理器控制台:工具=>NuGet 程序包管理器=》程序包管理器控制台。
4. 安装
// 可选: (查看与cef有关的程序包)
输入:Get-Package -ListAvailable cef
// 安装版本为 39.0.1 的 CefSharp.WinForms 程序包
输入:Install-Package CefSharp.WinForms -Version 39.0.1
也可以输入,安装最新的程序包:Install-Package CefSharp.WinForms
如果是 WPF应用程序,则需要安装 CefSharp.Wpf
5. 添加引用:
CefSharpDemo\packages\CefSharp.WinForms.39.0.1\CefSharp\x86\CefSharp.WinForms.dll
CefSharpDemo\packages\CefSharp.Common.39.0.1\CefSharp\x86\*.* (包括CefSharp.BrowserSubprocess.exe)
6. 代码
private void Form1_Load(object sender, EventArgs e)
{
CefSharp.WinForms.ChromiumWebBrowser wb = new CefSharp.WinForms.ChromiumWebBrowser("news.sina.com.cn");
wb.Dock = DockStyle.Fill;
this.Controls.Add(wb);
目前 Google Chrome(Google浏览器),Chromium浏览器,Opera等都是基于CEF为核心,Webkit引擎的浏览器。
Xilium.CefGlue 是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库。
CEFSharp 是用C++/CLI的方式来调用CEF类库的。
一. 开发环境
VS2012 + VS2012 SP4 + CefSharp
二. 开发步骤(以CefSharp为例)
1. 新建Windows窗体应用程序 CefSharpDemo,
2. 在生成=》配置管理器中,将活动解决方案平台改成 x86 (CEF不能自适应 x86 | x64,必须选择一个目标)
3. 打开 NuGet 程序包管理器控制台:工具=>NuGet 程序包管理器=》程序包管理器控制台。
4. 安装
// 可选: (查看与cef有关的程序包)
输入:Get-Package -ListAvailable cef
// 安装版本为 39.0.1 的 CefSharp.WinForms 程序包
输入:Install-Package CefSharp.WinForms -Version 39.0.1
也可以输入,安装最新的程序包:Install-Package CefSharp.WinForms
如果是 WPF应用程序,则需要安装 CefSharp.Wpf
5. 添加引用:
CefSharpDemo\packages\CefSharp.WinForms.39.0.1\CefSharp\x86\CefSharp.WinForms.dll
CefSharpDemo\packages\CefSharp.Common.39.0.1\CefSharp\x86\*.* (包括CefSharp.BrowserSubprocess.exe)
6. 代码
private void Form1_Load(object sender, EventArgs e)
{
CefSharp.WinForms.ChromiumWebBrowser wb = new CefSharp.WinForms.ChromiumWebBrowser("news.sina.com.cn");
wb.Dock = DockStyle.Fill;
this.Controls.Add(wb);
}
运行的结果: