使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器

2016-09-23    分类:.NET开发编程开发首页精华0人评论

分享到:更多3

本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划

介绍

以前曾试过在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。地址栏,多标签,下载。

译文链接:http://www.codeceo.com/article/cefsharp-charp-app-chrome.html
英文原文:Embedding Chrome in your C# App using CefSharp
翻译作者:码农网 – 小峰
转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]

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

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

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

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

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

  3. 在 C# App 中嵌入 Chrome 浏览器使用 CefSharp

    介绍 以前曾试过在app中整合一个可靠又快速的web浏览器吗? 在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中. 然后,你可以使用此 ...

  4. 使用CefSharp在.Net程序中嵌入Chrome浏览器(十)——独立文件夹部署

    CefSharp本身携带了一大堆文件,这些文件默认直接释放在exe文件底下,这种方式本身没有什么问题,但多了一大堆文件后不是很好看.本文这里就介绍一个方法,使得可以将CEF相关的文件部署到独立的文件夹 ...

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

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

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

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

  7. 使用CefSharp在.Net程序中嵌入Chrome浏览器(三)——基本操作

    CefSharp本身提供了WPF和WinForm两个版本的控件,这两个版本的控件使用方法大同小异,由于我WPF的版本用的较多,这里就简单的介绍下WPF版的CEFSharp控件的用法. 加载页面: Ch ...

  8. 使用CefSharp在.Net程序中嵌入Chrome浏览器(八)——Cookie

    CEF中的Cookie是通过CookieManager来管理的,可以用它来设置发送的Cookie. 发送Cookie 发送Cookie的一个基本示例如下: var cookieManager = _c ...

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

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

随机推荐

  1. JVM笔记(一) Java内存区域

    Java 内存区域 总概 java虚拟机在执行java程序的过程中,会把它管理的内存划分为几个不同的数据区域.每当运行一个java程序时,就会启动一个虚拟机. 具体的区域如图所示: 同时,方法区 与 ...

  2. spring boot 学习(十)SpringBoot配置发送Email

    SpringBoot配置发送Email 引入依赖 在 pom.xml 文件中引入邮件配置: <dependency> <groupId>org.springframework. ...

  3. PHP:第一章——php中的输出函数

    <?php //PHP中的输出函数 //echo()函数输出一个或多个字符串: echo 'PHP中的echo<br/>'; //var_dump()此函数显示关于一个或多个表达式的 ...

  4. A*算法 寻路

    转载 :http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx A*算法步骤: 1,把起始格添加到开启列表. 2,重复如下的工作: a) ...

  5. 【转载】maven入门1

    学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门) 2007-08-28 14:01:04 标签:maven 职场 休闲 一.前言         早就知道maven 在java 项目的管理 ...

  6. koa 核心源码介绍

    链接来源 Request,Context,Response  在代码运行之前就已经存在的 Request和Response自身的方法会委托到Context中. Context源码片段 var dele ...

  7. iOS-UIImage变为NSData并进行压缩

    <iOS>UIImage变为NSData并进行压缩   //sdk中提供了方法可以直接调用 UIImage *img = [UIImage imageNamed:@"some.p ...

  8. art.dialog 使用说明

    Js代码 2. 传入HTMLElement   备注:1.元素不是复制而是完整移动到对话框中,所以原有的事件与属性都将会保留 2.如果隐藏元素被传入到对话框,会设置display:block属性显示该 ...

  9. MyEclipse junit测试问题initializationError

    问题的情况如上. 问题的解决方法居然是:选中函数的整行,而不是只选中函数名,如下图选中运行junit测试. TestMySQL.testDriverMannager1Unrooted Testsini ...

  10. Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项

    Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...