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

Posted Leo_wlCnBlogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 C# App 中嵌入 Chrome 浏览器使用 CefSharp相关的知识,希望对你有一定的参考价值。

介绍

以前曾试过在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.右击你的主窗体,并选择“View Code”。

技术分享

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




以上是关于在 C# App 中嵌入 Chrome 浏览器使用 CefSharp的主要内容,如果未能解决你的问题,请参考以下文章

使用CefSharp在.Net程序中嵌入Chrome浏览器——Javascript交互

在 python QT GUI 中嵌入 Chrome 浏览器?

使用CefSharp在.Net程序中嵌入Chrome浏览器——Javascript交互

C# Uwp app webbrowser 控件无法获取设备位置

可以在程序中嵌入chrome内核的浏览器吗

卡片列嵌入 Instagram 帖子:Chrome 和其他浏览器之间的区别