CEF | 探索实现基于 CEF 框架的客户端
背景
因为工作需要,现在需要实现一个加载指定网址的客户端。需要在客户端内完成网页的加载、跳转、下载、打印等功能。基本上类似于做一个加载指定网址的浏览器客户端。
Qt 有自带的两个用来开发浏览器的模块,一个是 QWebKit,一个是 QWebEngine。QWebKit 在 Qt5.6 之后已经被废弃了,转而使用基于 chromium 内核、性能更好、问题更少的 QWebEngine。
但是即使是 QWebEngine,也有一些功能没有办法实现,比如网页中调用 js 的 window.print()方法时,可以捕捉到信号,但是目前没有办法获取到打印的内容(如果有大神肯赐教,可以留个言)。
而基于 cef 开发的浏览器时可以实现这个功能的,只不过现在封好的 cef 是基于 c#的。所以现在想实现 c++接口、Qt 界面、cef 框架的浏览器。
CEF 浅了解:
CEF 是 Chromium Embedded Framework 的简写,是一个把 Chromium 嵌入其他应用的框架。这是个开源项目,是由 Marshall Greenblatt 在 2008 年创立的,由 C/C++编写而成,它通过提供稳定的 API 来避免开发者被 Blink、V8、Chromium 等复杂的代码逻辑所困扰。
CEF 以开源库的方式提供,可以内嵌到第三方程序中用于显示网页以及和网页进行交互。
CEF 支持 Windows, Linux, Mac 平台。除了提供 C/C++接口外,也有其他语言的移植版。
CEF 因为基于 Chromium,所以 CEF 支持 Webkit&Chrome 中实现的 HTML5 的特性,并且在性能上面,也比较接近 Chrome。
CEF 还提供的如下特性:自定义插件、自定义协议、自定义 JavaScript 对象和扩展;可控制的 resource loading, navigation, context menus 等等。
很多大家耳熟能详的桌面端应用都在使用 CEF 框架:QQ 桌面端、微信桌面端、网易云音乐桌面端、 MATLAB 、 FoxMail 、OBS Studio 等。
CEF 的官网:
CEF 的官网是:"https://bitbucket.org/chromiumembedded/cef/wiki/Home" 。
打开是这样的:
预编译文件下载
CEF 官方提供了 Linux(32/64/ARM/ARM64)、MacOS X 64、Win32、Win64 平台的预编译好的库文件供下载,下载地址为:"http://opensource.spotify.com/cefbuilds/index.html" 。
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/c68c25077e437937491dcb0bc】。未经作者许可,禁止转载。
评论