.net自研chorme内核浏览器

先说为什么要自研呢

1、在一些商业软件中,可以统一浏览器,这样不用考虑浏览器的兼容性,开发成本小,甚至不需要专门的前端开发,容易维护。
2、JS调用CS浏览器功能,可以实现客户端打印等,解决一些系统打印的问题,OCX已经不再被支持,可以使用JS调用浏览器替代。
3、屏蔽右键和调试器,保护程序。

其他可以实现的,比如
接管js对话框,并自动触发是或否的按钮
JS和C#通信
给页面或iframe注册全局的回调函数
接管或屏蔽页面的请求

先说一下cef

Cef项目是C/C++的项目;
下面我们来看看Cef项目生成的一些dll和资源都是做什么用的
打开这个目录\cef_binary_3.1453.1236_windows_xilium\Release
libcef.dll-------------------------->Cef的核心类库
icudt.dll-------------------------->支持unicode的类库
ffmpegsumo.dll------------------>支持音频和视频的类库
d3dcompiler_43.dll--------------->WinXP下支持3D的类库
d3dcompiler_46.dll--------------->Win7和之后的Win支持3D的类库
libEGL.dll------------------------->用于支持3D
libGLESv2.dll--------------------->用于支持3D
打开目录:\cef_binary_3.1453.1236_windows_xilium\Resources
locales--------------------------->此文件夹存放了各种国家的语言资源
cef.pak-------------------------->为WebKit相关的资源(谷歌浏览器的核心是webkit)
devtools_resources.pak--------->调试器的相关资源(我们做的项目是可以使用谷歌浏览器的调试器的)

CEF有两个版本,CEF1和CEF3
CEF1是单进程的,实现了更多的特性,内存使用更少,与客户端应用更能完美的结合,使用的是WebKit的API,但是FLASH无法在这个框架中正常播放,不支持html5的音频和视频,只支持NPAPI插件。关于NPAPI插件的相关知识,请参阅这里:http://developer.chrome.com/extensions/npapi.html(好像要FQ)
CEF3是多进程的,使用异步消息的方式来完成主进程和其他进程的通信(其他进程有可能是Webkit,也有可能是V8的解析引擎进程),使用的是chromium官方的内容呈现API,支持NPAPI和PPAPI插件,有一个单独的进程用于调试,相对于CEF1来说,虽然可以播放FLASH等视频,但是还有很多问题没有处理掉,社区里的人认为CEF1更稳定一些,CEF3的issues列表,请参阅这里:https://code.google.com/p/chromiumembedded/issues/list
我们选用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库的,请参见:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home
还有一个CEFSharp的项目,是用C++/CLI的方式来调用CEF类库的,请参见:https://github.com/chillitom/CefSharp

CefGlue是建立在Cef项目之上的,
CefGlue只不过是通过PInvoke来访问Cef项目生成的一些dll

实现有以下几种方式

CefSharp

优点:

WinForms是非常老和成熟的项目。如果你要使用WinForms它可能是去的方式;
它有一个NuGet bundle,所以它很容易使用和更新;
支持较新版本的WPF(.NET 4);
支持单声道。

缺点:

As @Uwe Keim提到他们刚才最近才开始支持WPF,所以它不像Xillium.CefGlue那么成熟;
社区不是那么接受你的需要。

CefGlue

优点:

这是.NET 2.0友好。你的代码将能够在它上面运行。 (这对我们至关重要)
一个非常敏感的社区,这将帮助你得到你需要做的/固定的;
更成熟的WPF支持;

缺点:

根据我所知,没有NuGet包,你需要添加库并自己更新它

NanUi

miniblink

在写这篇文章时,搜索到这一种实现方式。
官网
https://miniblink.net/index.html

优缺点看官方文档吧。
这个并不是开源免费的,标题版本可以免费使用,但不开源。高级版本收费。

使用说明

下载SDK表,将node.dll放在程序运行目录下。

总结

目前来看,miniblink开发应用更好一些。
1.没有过度页面,比较清爽。
2.前后台数据交换更方便一些。
没有深度使用,过一段深度使用后,再来告诉大家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏展翅888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值