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


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

相关文章
|
3月前
|
数据采集 JavaScript 前端开发
Pyppeteer实战:基于Python的无头浏览器控制新选择
本文详细讲解了如何使用 Pyppeteer 结合爬虫代理高效采集小红书热点推荐信息。通过设置代理 IP、Cookie 和自定义 User-Agent,突破目标网站的反爬机制,实现标题、内容和评论的数据提取。文章结合代码示例与技术关系图谱,清晰展示从数据采集到分析的全流程,为复杂网站的数据获取提供参考。读者可在此基础上优化异常处理、并发抓取等功能,提升爬虫性能。
215 8
|
10月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
11月前
|
数据采集 存储 C#
C# 爬虫技术:京东视频内容抓取的实战案例分析
C# 爬虫技术:京东视频内容抓取的实战案例分析
|
7月前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
223 18
|
9月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
180 1
|
10月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
103 3
|
9月前
|
API C# Windows
【C#】在winform中如何实现嵌入第三方软件窗体
【C#】在winform中如何实现嵌入第三方软件窗体
482 0
|
算法 C#
C#实战 | 求解《九章算术》盈不足之共买物
【7月更文挑战第8天】中国古代数学成就显著,《九章算术》展示了先进的算法,如分数运算和方程解法,领先世界数百年。项目示例通过控制台应用,运用for循环和if条件语句,模拟解决书中盈不足问题,展示了解决数学问题的编程方法。
176 6
C#实战 | 求解《九章算术》盈不足之共买物
|
11月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
473 1
|
算法 C#
C#实战 | 求解《丘建算经》百鸡问题
【7月更文挑战第9天】《丘建算经》的百鸡问题是一个经典的不定方程问题,用C#解决时,通过三重嵌套循环穷举公鸡、母鸡和小鸡的组合。代码示例中,外层循环分别对应公鸡和母鸡,而小鸡数量由总钱数和已知鸡种计算得出,避免了额外的内层循环。使用`if`判断确保总数量正确。注意,除法运算可能导致整数截断错误,需使用3.0保证浮点数除法的准确性。这种方法虽然效率较低,但能确保找到所有可行解。
191 1
C#实战 | 求解《丘建算经》百鸡问题