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包管理器子菜单。


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

相关文章
|
1月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
1月前
|
Java 数据库 C#
C#winforms实现windows窗体人脸识别
C#winforms实现windows窗体人脸识别
|
1月前
|
Web App开发 小程序 前端开发
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
71 10
|
9天前
|
JavaScript 前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
在使用 WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件)时,要获取网页加载后的标题,可以监听 WebView2 的 NavigationCompleted 事件。这个事件被触发时,表示导航已完成,此时执行JavaScript代码可以安全地获取网页的标题。
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
|
1月前
|
开发框架 .NET C#
使用C#进行.NET框架开发:深入探索与实战
【5月更文挑战第28天】本文探讨了C#在.NET框架中的应用,展示了其作为强大编程语言的特性,如类型安全、面向对象编程。C#与.NET框架的结合,提供了一站式的开发环境,支持跨平台应用。文中介绍了C#的基础知识,如数据类型、控制结构和面向对象编程,以及.NET的关键技术,包括LINQ、ASP.NET和WPF。通过一个实战案例,展示了如何使用C#和ASP.NET开发Web应用,包括项目创建、数据库设计、模型和控制器编写,以及视图和路由配置。本文旨在揭示C#在.NET开发中的深度和广度,激发开发者探索更多可能性。
|
1月前
|
安全 算法 测试技术
C#编程实战:项目案例分析
【4月更文挑战第20天】本文以电子商务系统为例,探讨C#在实际项目中的应用。通过面向对象编程实现组件抽象和封装,确保代码的可维护性和可扩展性;利用安全性特性保护用户数据;借助数据库操作处理商品信息;通过逻辑控制和算法处理订单;调试工具加速问题解决,展现C#的优势:面向对象、数据库交互、数据安全和开发效率。C#在实际编程中展现出广泛前景。
|
1月前
|
C#
C#如何实现窗体最小化到托盘
C#如何实现窗体最小化到托盘
26 0
|
1月前
|
数据采集 监控 调度
C#网络爬虫之TianyaCrawler实战经验分享
C#网络爬虫之TianyaCrawler实战经验分享
|
1月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
86 0
|
1月前
|
数据可视化 C# 图形学
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
【Unity 3D】图形界面GUI的讲解及在C#中实现用户登录界面的实战(附源码)
97 0