CEF | 探索实现基于CEF框架的客户端

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第31天,点击查看活动详情

背景

因为工作需要,现在需要实现一个加载指定网址的客户端。需要在客户端内完成网页的加载、跳转、下载、打印等功能。基本上类似于做一个加载指定网址的浏览器客户端。

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 等。

扫描二维码关注公众号,回复: 14343696 查看本文章

CEF的官网:

CEF的官网是:"bitbucket.org/chromiumemb…" 。

打开是这样的:

image.png

预编译文件下载

CEF官方提供了Linux(32/64/ARM/ARM64)、MacOS X 64、Win32、Win64平台的预编译好的库文件供下载,下载地址为:"opensource.spotify.com/cefbuilds/i…" 。

未完待续...

猜你喜欢

转载自juejin.im/post/7114963631472640037
CEF