C#窗体内嵌Chromium内核浏览器实战 (1)

简介: 本文目录1. 背景2. 调查3. webbrowser的替代方案4. CefSharp介绍5. 准备工作

1. 背景

为一个大型集团客户开发一套系统,为了便于升级维护使用了B/S结构。


BUT,客户要求客户端能读写射频卡、操作打印机打印票据,还好,可以写个C# winform程序通过webbrowser控件内嵌网页,同时也支持JS和C#代码互相调用。操作硬件读写卡、打印的功能交给C#就是了。


BUT,客户电脑竟然还有少量的XP…顿时无语,虽然是XP比例少,奈何人家体量大,咱们也没法要求客户把XP系统都换了。


欲哭无泪啊,要知道XP系统IE版本最高到8,而webbrowser是IE内置的浏览器控件,那也就是说只能使用IE8特性,IE8这种远古巨兽对现在的前端技术支持简直就是渣渣渣。


2. 调查

没办法,客户就是上帝,先看看能不能在IE8框架内解决问题吧。


首先IE8不支持HTML5,头疼,好在通过html5shiv可以实现兼容IE8。


第二,IE8 支持的 CSS3 新特性很少,不到30%。这意味着一些漂亮的前端css部分可能GG了,另外兼容性也是个大问题了,几乎所有页面都得在IE8里面测试下实际效果,而IE8的测试效率简直渣渣渣


第三,心里有中不详的预感,看下vue吧,登录Vue官网,看到下面一条消息,感觉不会再爱了。


Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的浏览器。

1

第四,绝望中去查了下react和angular,都已经放弃了对IE8的支持。


OK,我也放弃。


3. webbrowser的替代方案

网上查了查,可以在.net平台使用的浏览器嵌入控件方案有几种


首先是WebKit .net,版本旧的相当可以,查阅了N多博客,踩了N多坑,最后也没在XP上跑起来,就算跑起来了也不敢用,N年前的东西了以后能不能活还不一定。


然后是GeckoFX,这家伙是FireFox的gecko内核机制的,但是网上资料很少,又踩了N多坑,最后跑都没有跑起来,直接GG。


最后找到了CefSharp,好家伙一看有github,最近几天还在更新,顿时心内一定,就是它了。


4. CefSharp介绍

github介绍很精准,地址:CefSharp的GitHub,大体说的是:


CefSharp是可以在.net应用内嵌的Chromium内核控件,支持VB、C#等CLR语言,支持winform、wpf等平台。


通俗的说,就是开发的.net程序可以通过CefSharp内嵌一个网页。


不错不错,那就开始使用吧。


5. 准备工作

首先安装个xp系统测试用,win7、win10上能跑起来绝对说明不了xp下可用。


然后xp系统得安装. net framework4.0,经过我多次失败的验证,好像.net4.0以下使用CefSharp一直报错,搞不懂啊。当然XP系统是可以安装. net framework4.0的,附地址:.net4.0地址


然后还得安装VC++2013运行库,这个是CefSharp运行的基础,忍忍吧,XP能装上就算不错了。提供地址:

vc++2013运行库下载。


然后得有Visual Studio开发.net程序,此处我用的VS2013。


然后下载CefSharp得用NuGet工具,此处提供下载地址:NuGet下载地址。下载后双击安装即可,注意版本。安装后VS2013工具菜单下会多出NuGet包管理器子菜单。


工欲善其事必先利其器,这些准备工作都到位了,就可以开始大干一场了。

相关文章
|
6月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
6月前
|
Web App开发 小程序 前端开发
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
119 10
|
6月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
1月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
68 0
|
4月前
|
数据采集 Web App开发 JavaScript
快速参考:用C# Selenium实现浏览器窗口缩放的步骤
在C#结合Selenium的网络爬虫应用中,掌握浏览器窗口缩放、代理IP、cookie与user-agent设置至关重要。本文详述了如何配置代理(如亿牛云加强版),自定义用户代理,启动ChromeDriver,并访问目标网站如抖音。通过执行JavaScript代码实现页面缩放至75%,并添加cookie增强匿名性。此策略有效规避反爬机制,提升数据抓取的准确度与范围。代码示例展示了整个流程,确保爬虫操作的灵活性与高效性。
114 3
|
4月前
|
数据安全/隐私保护
Dolphin指纹浏览器隐私保护升级:IPXProxy代理IP配置实战教程
Dolphin指纹浏览器采用先进的技术,让用户在一台电脑上就可以处理数百个配置文件。每一个配置文件都有着独特的浏览器指纹,极大的保障了用户上网的安全性。并且搭配代理IP一起,还能给每个文件配置不同的IP地址,让网络活动可以畅通无阻。下面给大家带来Dolphin指纹浏览器和IPXProxy代理IP配置详细教程
|
4月前
|
前端开发 JavaScript
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
75 0
|
4月前
|
Web App开发 编解码
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
|
4月前
|
开发框架 数据可视化 C#
|
6月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
70 0