cef3的各个接口你知道几个



CEF3基本的框架包含C/C++程 序接口,通过本地库的接口来实现,而这个库则会隔离宿主程序和 Chromium&Webkit的操作细节。它在浏览器控件和宿主程序之间提供紧密的整合,它支持用户插件,协议,javascript对象以及 javascript扩展,宿主程序可以随意地控件资源下载,导航,下下文内容和打印等。下边总结一些最常用到的类和接口,便于了解整个cef3的代码。

      CefBrowser是主要的浏览器窗口类,可以用静态的函数CreateBrowser() 和CreateBrowserSync() 来创建一个新的浏览器窗口,公开由浏览器提供的功能。包括前进后退导航,来源检索,加载请求等

      CefFrame 代表一个浏览器窗口的框架,每个浏览器窗口有一个顶层的主框架,而这个主框架可以用GetMainFrame() 方法得到。

      CefBrowser和CefFrame对象被用来发送命令给浏览器以及在回调函数里获取状态信息。每个CefBrowser对象包含一个主 CefFrame对象,主CefFrame对象代表页面的顶层frame;同时每个CefBrowser对象可以包含零个或多个的CefFrame对象, 分别代表不同的子Frame。例如,一个浏览器加载了两个iframe,则该CefBrowser对象拥有三个CefFrame对象(顶层frame和两 个iframe)。

      CefApp,此接口用来传递到CefInitialize(),和允许应用程序定制全局,如资源加载,代理。一些功能是由所有进程共享的,有些必须实现浏览器的过程中,必须在渲染过程中执行。见详情头文件的注释。

      CefClient:是主浏览器窗口的代表接口,这个接口做为参数传递给CreateBrowser()

      CefRequest:代表URL,方法,发送数据和头文件等这样的请求。

      CefSchemeHandleFactory:被用来处理像myscheme://mydomain类似客户计划的请求

      CefReadHandler和CefWriteHandle是一个读写数据的简单接口。

      CefV8Handler,CefV8Value和CefV8Context是被用来创建和访问JavaScript对象。

      CefBrowserHost:有关运行browser进程中唯一可用的browser窗口的功能。例如,检索本地父窗口句柄,或销毁browser窗口。

      CefRenderProcessHandlerWebKitV8对渲染进程中应用程序的集成能力。通过CefApp返回此对象的一个​​实例。

      CefCookie:处理cookie的功能。

使用CEF3开发的过程中,CefClient使用最频繁的,了解cefclient中的回调类是很有必要的。所谓回调类,就是浏览器相关的动作发生时,去回调一些事件函数,用户可以在事件中获取或修改相关的信息。cefclient中的回调类包括:

CefContextMenuHandler,回调类,主要用于处理 Context Menu 事件。

CefDialogHandler,回调类,主要用来处理对话框事件。

CefDisplayHandler,回调类,处理与页面状态相关的事件,如页面加载情况的变化,地址栏变化,标题变化等事件。

GetDragHandler,回调类,处理拖拽相关的事件,如从外边拖入浏览器事件

CefDownloadHandler,回调类,主要用来处理文件下载。

CefFocusHandler,回调类,主要用来处理焦点事件。

CefGeolocationHandler,回调类,用于申请 geolocation 权限。

CefJSDialogHandler,回调类,主要用来处理 JS 对话框事件。

CefKeyboardHandler,回调类,主要用来处理键盘输入事件。

CefLifeSpanHandler,回调类,主要用来处理与浏览器生命周期相关的事件,与浏览器对象的创建、销毁以及弹出框的管理。

CefLoadHandler,回调类,主要用来处理浏览器页面加载状态的变化,如页面加载开始,完成,出错等。

CefRenderHandler,回调类,主要用来处在在窗口渲染功能被关闭的情况下的事件。

CefRequestHandler,回调类,主要用来处理与浏览器请求相关的的事件,如资源的的加载,重定向等。

 

CEF3的CefBrowser类是实现浏览器最主要的一个类。主要有以下实现类组成:

CefMainDelegate实现通用进程的引导逻辑。

CefContentClient实现所有进程中共同的ContentAPI回调。

CefContext代表全局CEF内容在browser进程中。单个CefContext对象由CefInitialize()创建并由CefShutdown()销毁。

CefBrowserMainParts实现browser进程中的引导逻辑。

CefContentBrowserClient实现browser进程的ContentAPI回调。

CefBrowserHostImpl实现在browser进程中CefBrowser和CefBrowserHost的接口。提供粘合代码和工具的接口来和RenderViewHost通信。

CefContentRendererClient实现渲染进程中的ContentAPI回调。

CefBrowserImpl实现渲染进程中的CefBrowser接口。提供粘合代码和工具的借口来和RenderView通信。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、优化“CEF3Events”基类调用问题,可以在“CEF3Events”增加其它函数,或使用类变量。 2、增加回调事件及代理功能 “_浏览器_拦截请求资源”, "_浏览器_文件对话框事件", "_浏览器_即将创建页面_", "_浏览器_数据读取拦截", "_浏览器_数据读取中事件" 3、 代理可以使用方式: .常量 CEF代理_auto_detect, "“auto_detect”", 公开 .常量 CEF代理_direct, "“direct”", 公开 .常量 CEF代理_fixed_servers, "“fixed_servers”", 公开 .常量 CEF代理_pac_script, "“pac_script”", 公开 .常量 CEF代理_system, "“system”", 公开 这种代理也是全局代理,重启程序也同样存在,在缓存目录下的"UserPrefs.json"文本中可以看到配置, 这种方式的原理是在进行每次请求的时候CEF给应用一次机会让应用可以修改请求相关的参数。在"_浏览器_即将创建页面_"事件中实现。 4、这次修改重点是实现局部代理功能 方案1:在“_浏览器_拦截请求资源”使用http模块访问数据返回能浏览器,需要找有代理功能HTTP访问模块。COOKIE需要自己封装, 方案2:使用全局代理,在“_浏览器_拦截请求资源”请求图片、css、js等资源可以使用http模块返回,好处是不用自己封装COOKIE. 5、“_浏览器_数据读取拦截”和“_浏览器_数据读取中事件”需要配合使用, 可以修改请求的资源流,置入JS文件等。 也可以获取相关资源,用来缓存数据使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

vqt5_qt6

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

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

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

打赏作者

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

抵扣说明:

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

余额充值