介绍

以前曾试过在app中整合一个可靠又快速的web浏览器吗?

在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中。

然后,你可以使用此web浏览器:

  • 给用户提供一个集成的浏览体验
  • 用HTML / JavaScript编程添加嵌入式界面
  • 用于web自动化

CefSharp可靠,快速,完全开源,不需要任何额外的依赖就可以安装到最终用户(除VC ++ Runtime 2013以外)。

在本指南中,我们将使用WinForms项目,但CefSharp同样可工作于WPF项目。

入门

按照以下步骤快速开始CefSharp。

项目

1.用.NET 4.5.2创建一个Windows窗体应用程序(C#)项目

2.对项目命名(如“CefTest”)

DLL文件(NuGet方法)

3A)如果你使用的是NuGet,那么你可以从NuGet代码仓库抓取CefSharp.WinForms,跳过下面的手动方法。

3B)如果你已经使用了NuGet,那么导航SOLUTION > Configuration Manager,并将你的项目设置为x86或x64,因为目前不支持AnyCPU。

DLL文件(手动方法)

如果你使用的是NuGet,那么请跳过此章节!

3A)下载CefSharp二进制文件并解压它们。

CefSharp v51 x86(32位app)

CefSharp v51 x64(64位app)

3B)右击你的项目,点击“Add Reference”,然后选择“Browse”。

3C)选择这些DLL文件:

CefSharp.dll

CefSharp.Core.dll

CefSharp.WinForms.dll

3D)用ZIP选择所有文件:

3E)复制那些文件到项目的Debug文件夹(在Bin之中)

代码

4.右击你的主窗体,并选择“”。

5.添加以下代码:

复制到import 部分:

using CefSharp;
using CefSharp.WinForms;

复制到代码段:

public ChromiumWebBrowser browser;
public void InitBrowser(){
Cef.Initialize(new CefSettings());
browser = new ChromiumWebBrowser ("www.google.com");
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}

在调用 InitializeComponent()之后就调用InitBrowser():

InitBrowser()

你的代码最后应该是这样的:

运行吧!

6.按F5键,你会看到谷歌主页!

故障排除

一个类型为’System.IO.FileNotFoundException’未处理的异常出现在browser.exe中
其他信息:无法加载文件或’CefSharp.Core.dll’程序集或它的一个依赖。

如果你收到此错误,请确保你安装了Visual C ++ 2013 Redistributable。

一个类型为’System.BadImageFormatException’未处理的异常出现在browser.exe中
其他信息:无法加载文件或’CefSharp.Core, Version=43.0.0.0, Culture=neutral,程序集

如果你得到这个错误,它意味着你在64位的PC上,而你的app用AnyCPU模式构建。你需要改变为x86或x64模式:

  1. 打开Solution Explorer面板
  2. 右键点击你的项目>Project Properties
  3. 单击Build标签
  4. 更改Platform target为x86或x64

全功能浏览器

如果你正在寻找一个全功能浏览器项目,那么检查这些用C# CefSharp构建的开源浏览器。

WebExpress

WPF。带有建议、多个标签、下载、书签、历史记录的地址栏。

<作者未提供截图>

SharpBrowser

Windows Forms。地址栏,多标签,下载。

在 C# App 中嵌入 Chrome 浏览器使用 CefSharp的更多相关文章

  1. 转-使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器

    使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器 2016-09-23    分类:.NET开发.编程开发.首页精华0人评论 分享到:更多3 本文由码农网 – 小峰原创翻译,转载 ...

  2. C# App 中嵌入 Chrome 浏览器

    http://www.codeceo.com/article/cefsharp-charp-app-chrome.html http://developer.51cto.com/art/201304/ ...

  3. 使用CefSharp在.Net程序中嵌入Chrome浏览器(二)——参数设置

    在实现了.Net程序中嵌入Chrome浏览器后,下一步的个性化操作就是加入一些设置了,在前面的文章中,我们可以看到在使用Chrome控件前,有如下一个操作: var setting = new Cef ...

  4. 使用CefSharp在.Net程序中嵌入Chrome浏览器(一)——简介

    有的时候,我们需要在程序中嵌入Web浏览器,其实.Net Framework中本身就提供了WebBrowser控件,本身这个是最简单易用的方案,但不知道是什么原因,这个控件在浏览网页的时候有些莫名的卡 ...

  5. 使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法

    CEF(Chromium Embedded Framework, 嵌入式Chromium框架)是C/C++开发的库 目前 Google Chrome(Google浏览器),Chromium浏览器,Op ...

  6. 使用CefSharp在.Net程序中嵌入Chrome浏览器(七)——右键菜单

    一个常用的功能就是禁止浏览器本身的右键菜单,靠在WPF中拦截鼠标事件是不行的,可以通过设置MenuHandler来实现. 首先实现一个IContextMenuHandler. public class ...

  7. 使用CefSharp在.Net程序中嵌入Chrome浏览器(九)——性能问题

    在使用CEF的过程中,我发现了一个现象:WPF版的CEF比Chrome性能要差:一些有动画的地方会掉帧(例如,CSS动画,全屏图片拖动等),视频播放的效果也没有Chrome流畅. 查了一下相关资料,发 ...

  8. 使用CefSharp在.Net程序中嵌入Chrome浏览器(六)——调试

    chrome强大的调试功能令许多开发者爱不释手,在使用cef的时候,我们也可以继承这强大的开发者工具. 集成调试: 我们可以使用如下函数直接使用集成在chrome里的开发者工具 _chrome.Sho ...

  9. 使用CefSharp在.Net程序中嵌入Chrome浏览器(四)——启动优化

    在实际使用过程中,发现有的客户端会出现chrome加载网页过慢问题,定位后发现很多是因为设置系统代理所致,此时可以通过如下启动参数禁止系统代理. {"proxy-auto-detect&qu ...

随机推荐

  1. 学习Coding-iOS开源项目日志(二)

    继续前篇:<学习Coding-iOS开源项目日志(一)>,接着本第二篇<学习Coding-iOS开源项目日志(二)>讲解Coding-iOS开源项目. 前言:作为初级程序员,想 ...

  2. 单元测试中如何配置log4net

    按道理来说,单元测试中基本没有对于日志的需求,这是由于单元测试的定位来决定的. 因为单元测试的思想就是针对的都是小段代码的测试,逻辑明确,如果测试运行不通过,简单调试一下,就能很容易地排查问题.但是单 ...

  3. Sqlite学习笔记(一)&&编译安装

    Sqlite简介 sqlite是一个开源的嵌入式文件数据库,sqlite以动态链接库的方式供应用程序调用,所有的数据库对象都存储在同一个文件中. sqlite动态库非常小,最新的3.8.11版本也只有 ...

  4. mysql自增列导致主键重复问题分析。。。

    前几天开发童鞋反馈一个利用load data infile命令导入数据主键冲突的问题,分析后确定这个问题可能是mysql的一个bug,这里提出来给大家分享下.以免以后有童鞋遇到类似问题百思不得其解,难 ...

  5. MySQL创建和操作数据库表demo

    [1]建立员工档案表要求字段:员工员工编号,员工姓名,性别,工资,email,入职时间,部门. [2]合理选择数据类型及字段修饰符,要求有NOT NULL,auto_increment, primar ...

  6. Ambari工具之认识学习01

    随着大数据的越发流行,大大小小的互联网公司都开始参与一些大数据相关的业务,都想从中分一杯羹.Hadoop是大数据的典型代表,也可以说现在的领头大哥,很多互联网巨头都在使用hadoop,包括BAT等大公 ...

  7. Arch Linux sudo: PAM authentication error: Module is unknown [Solved!]

    问题描述: 我的 Arch Linux 已经用了快半年多,由于 Arch Linux 的滚挂问题,我从没有直接升级过系统.软件版本以及库自然落后了一些. 就在我准备需要用到 NFS 时,挂载网络文件系 ...

  8. 使用Tcmalloc进行堆栈分析

    在前一篇译文<使用TCmalloc的堆栈检查>,介绍了Tcmalloc进行堆栈检查,今天翻译<heap-profiling using tcmalloc>,了解如何 TCmal ...

  9. Django初体验(一):自定义表单提交

    注:本人使用的Django1.8.3版本进行测试 除了使用Django内置表单,有时往往我们需要自定义表单.对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CS ...

  10. [转]C#网络编程(订立协议和发送文件) - Part.4

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part4.aspx 源码下载:http://www.trac ...