在 C# App 中嵌入 Chrome 浏览器使用 CefSharp
2016-12-27 23:41
543 查看
介绍
以前曾试过在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模式:
打开Solution Explorer面板
右键点击你的项目>Project Properties
单击Build标签
更改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
相关文章推荐
- Android Ormlite 入门
- 我的2016-我与android的故事
- Android studio -- java.lang.nullpointerexception(no error message)
- swift学习笔记 - 判断当前运行的系统和平台
- swift学习笔记 - 判断当前运行的系统和平台
- 对于Fragment“懒加载”问题的一点点见解
- C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信
- Android Things简介:它真的来了!
- Android 隐式intent总结
- Android Studio 导入 GitHub 项目详解
- Swift3.0 GCD多线程详解
- android 测试更新app时 提示“未安装应用程序”
- Android IPC【Inter-Process Communication】机制一【Android IPC简介】
- 阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据
- iOS - 消息转发处理
- Android软键盘(五)如何判断软键盘是否显示
- Android SDK 手动下载目录(vs2015安装报错时借用)
- Android 电池管理系统
- Android之图片压缩和Uri与String类型的路径转换,获取图片,文件大小的工具类
- unity导出工程导入到iOS原生工程中详细步骤