C#客户端嵌入Chrome浏览器的实现

本文介绍了C#客户端嵌入Chrome浏览器的实现。因纯Web系统在打印、本地设备操作等方面有局限,Winform结合Web是较好选择。.net自带的WebBrowser有不足,CefSharp是目前较好的解决方案。文中还给出了搭建开发环境、基本用法及解决运行报错的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C#客户端嵌入Chrome浏览器的实现

客户端软件,也就是传统的Winform软件,在很多时候是很好用的。因为在做一些打印、本地设备操作的时候,纯Web系统还是存在很多局限性的。例如很多驱动你需要单独写cab包啦,交互式实现调试很困难啦,浏览器适配问题啦等等。这个时候,Winform结合Web的方式,就是一种比较好的选择。

传统上来说,.net本身支持WebBrowser,但是WebBrowser这个东西是基于本地操作系统IE浏览器的,一些CSS的样式解析啦,还有一些权限什么的,还是没有办法很好的控制。这时候我们就会想要把Chrome浏览器嵌入过来用了。

最早网上有Webkit的一些控件,但是现在已经不提供更新维护了。所以截止目前为止,CefSharp是一个比较好的解决方案。CefSharp是嵌入的Chromium浏览器,基本等同chrome。

笔者这里用的是VS2017社区版,简单写写操作,给大家扫盲吧。

首先是先搭建基本的开发环境。

1. 新建Winform应用程序。

2. 在解决方案管理器上,右键单击引用,选择“管理NuGet程序包”。

3. 点击浏览选项卡,搜索CefSharp,在列表中选择CefSharp.WinForms,安装CefSharp包,会自动安装相关引用包。

4. 打开引用列表,看到有CefSharp,CefSharp.Core,CefSharp.Winforms这三个包就OK了。

然后说一下基本的用法。先实现把ChromeWebBrowser嵌入到窗体中去并打开百度好了。

public ChromiumWebBrowser browser;
public void InitBrowser(){
Cef.Initialize(new CefSettings());
browser = new ChromiumWebBrowser ("www.baidu.com");
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}
然后再窗体构造函数中,InitializeComponent()之后调用InitBrowser()方法,将browser添加到窗体中去。

这里要说一下,CefSharp这个开源项目,目前应该没有办法导入VS的工具箱(至少笔者没成功),所以只能通过代码方式创建对象,browser的事件,也都需要代码注册,不过只要不是太新的新手,应该很快就习惯了。

这样运行就能打开百度的页面了。

第一篇就这样吧,接下来会说一下如何在browser中的html页面里,用js调用Winform中的方法。

 

 

PS:

  1. 在C#的WinForm项目,引入了CefSharp,直接运行程序,会报错

     error : CefSharp.Common contains unmanaged resoures, set your project and solution platform to x86 or x64. Alternatively for AnyCPU Support see https://github.com/cefsharp/CefSharp/issues/1714

    C#开发WinForm使用CefSharp使用
  2.  

    需要指定运行的平台,在解决方案右键,选择配置管理器

    C#开发WinForm使用CefSharp使用
  3.  

    在活动解决方案平台选择新建,新建一个x86的平台

    C#开发WinForm使用CefSharp使用
  4. 4

    再次点击启动就没有报错了

    C#开发WinForm使用CefSharp使用
  5.  

posted @ 2019-03-21 00:25 kevin860 阅读( ...) 评论( ...) 编辑 收藏
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值