当前位置: > 财经>正文

手把手教你使用CefSharp开发Winform(Winform中使用浏览器处理html页面)

2023-07-17 10:09:51 互联网 未知 财经

手把手教你使用CefSharp开发Winform(Winform中使用浏览器处理html页面)

 

第一步:了解什么是CefSharp

CefSharp简单来说就是一款.Net编写的浏览器包,方便你在Winform和WPF中内嵌的Chrome浏览器组件,用过Chrome内核组件来加载处理html页面,以此实现你在winform中访问网页或处理html页面。

为什么要使用CefSharp?个人觉得有以下方面好处:

1)当你无法用winform控件来实现一些界面样式或者html才能实现的一些功能的时候,你就需要将你的winform界面改为html+js来处理,比如:echart丰富的报表,高大上的智慧中心大屏;

2)当你开发的是B/S架构的在线应用,但是在使用过程中又需要访问本地电脑的硬件的时候,普通的浏览器无法达到效果,就通过C#来处理与硬件的交互,并把处理方法暴露给前端html来通过JS调用,比如:调用读卡器,扫描仪,摄像头等;

3)你自己发挥想象,比如需要编写winform窗体与html页面混合的应用程序,并且需要进行交互的时候。

GitHub地址:传送门 wiki帮助文档地址:传送门 CefSharp最小的示例工程:传送门 gitter交流讨论区:传送门

第二步:准备搭建环境及工具

1)所需环境及工具:

① Visual Studio(个人建议2015及以上)

② CefSharp.WinForms及其依赖的包(我使用的最新版是84.0.0):

CefSharp.WinForms Nuget包  

CefSharp.Common Nuget包

cef.redist.x64 Nuget包

③ .Net Framework4.5.2  

2)创建Winform项目;

在VS中新建一个“Windows窗体应用程序”(Winform工程)。

3)引用CefSharp

网上有很多教程是教你如何将CefSharp.WinForms及其依赖包下载的本地再添加引用。其实没必要,nuget网速也不至于这么差。

直接在项目中通过程序包管理器的NuGet 命令来添加引用就行。

在程序包管理器控制台输入以下命令安装CefSharp.WinForms:

Install-Package CefSharp.WinForms

在程序包管理器控制台输入以下命令安装CefSharp.Common:

Install-Package CefSharp.Common

在安装CefSharp.Common的时候,nuget会自动安装cef.redist.x64和cef.redist.x86.所以真的不需要像其他文章说的那样,一个个下载下来手动安装;

4)修改.net 目标框架为4.5.2以上或以上版本

 

5)配置管理器选择目标平台

CefSharp在Any CPU平台下无法正常运行。所以要修改配置。选中解决方案名称右键,进入解决方案属性页。找到配置属性,然后将目标平台改为x86或者x64。;

 

第三步:开始搭建一个Winform浏览器

form窗体中添加一个变量;

然后在Form1方法中编写以下代码(注意,以下代码只能在Form窗体方法中添加,不能写在Form_Load方法中;

// Start the browser after initialize global componentCefSettings settings = new CefSettings();string page = "http://baidu.com";// Initialize cef with the provided settingsCef.Initialize(settings);// Create a browser componentchromeBrowser = new ChromiumWebBrowser(page);// Add it to the form and fill it to the form window.this.Controls.Add(chromeBrowser);chromeBrowser.Dock = DockStyle.Fill;// Allow the use of local resources in the browserBrowserSettings browserSettings = new BrowserSettings();browserSettings.FileAccessFromFileUrls = CefState.Enabled;browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;chromeBrowser.BrowserSettings = browserSettings;

然后运行就可以看到效果;

除了访问web在线网页以外,还可访问本地的html页面。只需要将网页

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。