CEF4Delphi 从零到精通(保姆级中文教程)

目录

    • Chromium 框架下载
    • CEF4Delphi 开发组件源码下载
    • 组件详解
      • 1. TChromium / TFMXChromium
      • 2. TCEFWindowParent / TFMXWindowParent
      • 3. TCEFLinkedWindowParent
      • 4. TBufferPanel / TFMXBufferPanel
      • 5. TCEFWorkScheduler / TFMXWorkScheduler
      • 6. TChromiumWindow
      • 7. TBrowserWindow / TOSRBrowserWindow
      • 8. TCEFServerComponent
      • 9. TCEFURLRequestClientComponent
      • 10. TCEFSentinel
    • TChromium (核心组件)详解
      • TChromiumCore 中的过程和函数
      • TChromiumCore 中的属性
      • TChromiumCore 中的自定义事件
      • ICefClient 事件
      • ICefLoadHandler 事件
      • ICefFocusHandler 事件
      • ICefContextMenuHandler 事件
      • ICefKeyboardHandler 事件
      • ICefDisplayHandler 事件
      • ICefDownloadHandler 事件
      • ICefJsDialogHandler 事件
      • ICefLifeSpanHandler 事件
      • ICefRequestHandler 事件
      • ICefResourceRequestHandler 事件
      • ICefCookieAccessFilter 事件
      • ICefDialogHandler 事件
      • ICefRenderHandler 事件
      • ICefDragHandler 事件
      • ICefFindHandler 事件
      • ICefRequestContextHandler 事件
      • ICefMediaObserver 事件
      • ICefAudioHandler 事件
      • ICefDevToolsMessageObserver 事件
      • ICefExtensionHandler 事件
      • ICefPrintHandler 事件
    • Demo 详解
      • ConsoleBrowser
      • ConsoleBrowser2
      • CookieVisitor
      • CustomResourceBrowser
      • DLLBrowser
      • DOMVisitor
      • EditorBrowser
      • Extensions
      • ExternalPumpBrowser
      • FullScreenBrowser
      • JavaScript
      • KioskOSRBrowser
      • MDIExternalPumpBrowser
      • MediaRouter
      • MiniBrowser
      • OAuth2Tester
      • OSRExternalPumpBrowser
      • PopupBrowser
      • PopupBrowser2
      • PostInspectorBrowser
      • ResponseFilterBrowser
      • SchemeRegistrationBrowser
      • SimpleBrowser
      • SimpleBrowser2
      • SimpleExternalPumpBrowser
      • SimpleOSRBrowser
      • SimpleServer
      • SubProcess
      • TabbedBrowser
      • TabbedBrowser2
      • TinyBrowser
      • TinyBrowser2
      • ToolBoxBrowser
      • ToolBoxBrowser2
      • ToolBoxSubProcessBrowser
      • URLRequest
      • WebpageSnapshot

Chromium 框架下载

为了确保兼容性Windows 7,我没有选择最新版的浏览器框架。支持Win7的最高版本是109.0.5414.120,但我却选择了更老的71.0.3578.20版本。为什么呢?因为这个版本经过了两年的用户实际使用考验,稳定性极高,你可能不知道,很多网上下载的浏览器框架并不支持MP4格式的视频播放。而我用的这个71.0.3578.20版本,不仅支持MP4,还能流畅播放各种视频文件。对我来说,71.0.3578.20版本已经足够稳定,功能也完全够用,毕竟,稳定性和实用性才是最重要的。
点击下载:https://download.csdn.net/download/gust2013/90479578

CEF4Delphi 开发组件源码下载

对应的CEF4Delphi 开发组件源码下载
点击下载:https://download.csdn.net/download/gust2013/90479583

CEF4Delphi 从零到精通(保姆级中文教程)_第1张图片

组件详解

1. TChromium / TFMXChromium

这是将所有浏览器过程、函数、属性和事件集中在一起的组件。它包含了创建、修改和销毁网页浏览器所需的一切。
VCL 和 LCL 应用程序使用 TChromium,而 FireMonkey 应用程序使用 TFMXChromium。这两个组件都继承自 TChromiumCore,后者包含了大部分代码,但为了简化,通常会说 TChromium
TChromiumCore 也仅在需要时创建许多 CEF 处理程序,例如 CefClientCefResourceRequestHandler 等。

2. TCEFWindowParent / TFMXWindowParent

TCEFWindowParent 组件用于 VCL 和 LCL 应用程序中,与 TChromium 组件一起使用,以在正常模式下嵌入网页浏览器。

如前所述,正常模式下的浏览器允许 CEF 创建一些原生子控件来显示网页内容。TCEFWindowParent 继承自 TCEFWinControl,并用作这些子控件的父控件。TCEFWindowParent 还会自动控制这些子控件的大小。有关更多详细信息,请参阅 SimpleBrowser2 演示。

TFMXWindowParent 是一个 FireMonkey 组件,其用途与 TCEFWindowParent 相同,但由于 FMX 的代码结构,它必须继承自 TCommonCustomForm

TFMXWindowParentTFMXChromium 组件一起使用,并且必须在运行时创建。有关更多详细信息,请参阅 SimpleFMXBrowser 演示。

3. TCEFLinkedWindowParent

此组件可用于 VCL 和 LCL 应用程序。它的用途与 TCEFWindowParent 相同,但它具有一个 Chromium 属性,可以直接链接到 TChromium 组件。

TCEFLinkedWindowParent 会调整 CEF 为正常模式浏览器创建的子控件的大小,并使用链接的 TChromium 组件设置浏览器焦点。

TCEFWindowParentTCEFLinkedWindowParent 在 Windows 上运行良好,您可以使用其中任何一个,但不能在 Linux 或 MacOS 上使用 TCEFWindowParent

4. TBufferPanel / TFMXBufferPanel

TBufferPanel 用于 VCL 和 LCL 应用程序中的 OSR 模式浏览器,以绘制浏览器内容。TFMXBufferPanel 具有相同的用途,但用于 FireMonkey 应用程序。

有关更多详细信息,请参阅 SimpleOSRBrowser 演示。

5. TCEFWorkScheduler / TFMXWorkScheduler

TCEFWorkScheduler 用于 VCL 和 LCL 应用程序中,使用禁用多线程消息循环的 CEF 浏览器。TFMXWorkScheduler 具有相同的用途,但用于 FireMonkey 应用程序。

这些组件使用 GlobalCEFApp.OnScheduleMessagePumpWork 事件中的 delayMs 参数来处理 GlobalCEFApp.DoMessageLoopWork 调用。

VCL 和 LCL 应用程序必须在创建 GlobalCEFApp 之前将 GlobalCEFWorkScheduler 创建为 TCEFWorkScheduler 的实例。

FMX 应用程序必须在创建 GlobalCEFApp 之前将 GlobalFMXWorkScheduler 创建为 TFMXWorkScheduler 的实例。

还必须在销毁 GlobalCEFApp 之前销毁 GlobalCEFWorkSchedulerGlobalFMXWorkScheduler

有关所有实现细节,请参阅 ExternalPumpBrowserFMXExternalPumpBrowser 演示。

6. TChromiumWindow

TChromiumWindow 是为了以比使用 TChromiumTCEFWindowParent 组合更简单的方式嵌入极其简单的网页浏览器而创建的。

TChromiumWindow 可用于 VCL 和 LCL 应用程序中的正常模式浏览器,但如果您使用许多 TChromium 事件和过程,则应考虑使用其他组件。

有关所有详细信息,请参阅 SimpleBrowser 演示。

7. TBrowserWindow / TOSRBrowserWindow

TBrowserWindow 是一个 LCL 组件,简化了在正常模式下嵌入网页浏览器的跨平台应用程序的创建。TOSRBrowserWindow 具有相同的用途,但它使用 OSR 模式的浏览器。

如果您使用相同的源代码在 Lazarus 中构建 Windows、Linux 和 MacOS 应用程序,则建议使用这些组件。

TBrowserWindowTOSRBrowserWindow 由 Lazarus 项目管理员之一 Martin_fr(又名 User4martin)创建。

有关更多详细信息,请参阅 Lazarus_any_OS 目录中的所有演示。

8. TCEFServerComponent

TCEFServerComponent 允许您在 VCL、LCL 和 FMX 应用程序中创建一个小型的 HTTP 和 WebSocket 服务器。

它可以用于实现应用程序与本地主机之间的进程间通信(IPC)。

有关更多详细信息,请参阅 SimpleServer 演示。

9. TCEFURLRequestClientComponent

TCEFUrlRequestClientComponent 允许您从 VCL、LCL 或 FMX 应用程序中发出与任何浏览器无关的 URL 请求。

有关更多详细信息,请参阅 URLRequest 演示。

10. TCEFSentinel

TCEFSentinel 用作一个计时器,在关闭所有浏览器后检查运行的 CEF 进程数量。

此组件仅在 CEF 或 CEF4Delphi 中存在未解决的关闭问题并在应用程序关闭时生成异常时作为最后手段使用。

TChromium (核心组件)详解

这是将所有浏览器过程、函数、属性和事件集成在一起的组件。它包含了创建、修改和销毁网页浏览器所需的所有功能。

VCL 和 LCL 应用程序使用 TChromium,而 FireMonkey 应用程序使用 TFMXChromium。这两个组件都继承自 TChromiumCore,后者包含了大部分代码。为了简化讨论,论坛中通常会提到 TChromium

CEF 使用处理程序和多个类来控制网页浏览器,而 TChromiumCore 将这些复杂性隐藏在一个组件中。

某些处理程序必须在每个 TChromiumCore 实例创建时一起创建,但许多处理程序只有在应用程序使用与该处理程序相关的至少一个事件时才会被创建。

在创建浏览器之前,必须为 TChromiumCore 事件分配过程,因为只有在事件被使用时,才会创建触发该事件的处理程序。

某些属性在 TChromiumCore 创建浏览器时使用,需要在调用 TChromiumCore.CreateBrowser 之前设置这些属性。

默认的 CEF 配置使用多线程来提高浏览器性能,该组件中的大多数事件都在这些后台线程的上下文中执行。这可能会导致与 VCL、LCL 和 FMX 控件的问题,因为它们不是线程安全的。

如果使用默认的 CEF 配置,请将所有创建、销毁或修改控件的代码移到 TChromiumCore 事件之外。

默认情况下,TChromiumCore 会处理一个浏览器,但也可以配置为处理多个浏览器,前提是允许 CEF 自动创建所有弹出窗口。

要启用此功能,必须将 TChromiumCore.MultiBrowserMode 设置为 true,并在 TChromiumCore.OnBeforePopup 事件中将 Result 设置为 false

TChromiumCore 的多浏览器模式下,所有浏览器触发的事件都将通过同一个 TChromiumCore 实例触发。要区分每个事件是由哪个浏览器触发的,可以比较 TChromiumCore.BrowserIdbrowser.Identifier

TChromiumCore 中有多个函数和属性用于处理多浏览器模式下的浏览器数组。


TChromiumCore 中的过程和函数

  • function TChromiumCore.CreateClientHandler(aIsOSR : boolean = True) : boolean;
    用于创建客户端处理程序,该处理程序还会创建浏览器所需的大多数处理程序。

  • function TChromiumCore.CreateClientHandler(var aClient : ICefClient; aIsOSR : boolean = True) : boolean;
    当浏览器在弹出窗口或标签页中请求新浏览器时,用于创建客户端处理程序。

  • procedure TChromiumCore.CloseBrowser(aForceClose : boolean);
    用于请求关闭选定的浏览器。它调用 CefBrowserHost.CloseBrowser 方法。

  • procedure TChromiumCore.CloseAllBrowsers;
    TChromiumCore 实例处理的所有浏览器调用 CloseBrowser

  • function TChromiumCore.TryCloseBrowser : boolean;
    用于关闭浏览器的辅助函数。它调用 CefBrowserHost.TryCloseBrowser

  • function TChromiumCore.SelectBrowser(aID : integer) : boolean;
    TChromiumCore 使用多浏览器模式时,选择具有 aID 标识符的浏览器。

  • function TChromiumCore.IndexOfBrowserID(aID : integer) : integer;
    返回具有 aID 标识符的浏览器在浏览器数组中的索引。

  • function TChromiumCore.ShareRequestContext(var aContext : ICefRequestContext; const aHandler : ICefRequestContextHandler = nil) : boolean;
    创建一个新的请求上下文,该上下文与当前浏览器的请求上下文共享存储,并使用可选的处理程序。

  • procedure TChromiumCore.InitializeDragAndDrop(const aDropTargetWnd : HWND);
    用于在 OSR 模式下初始化 Windows 中的拖放功能。

  • procedure TChromiumCore.ShutdownDragAndDrop;
    用于在 OSR 模式下关闭 Windows 中的拖放功能。

  • function TChromiumCore.SetNewBrowserParent(aNewParentHwnd : HWND) : boolean;
    用于将浏览器重新定位到不同的 TCEFWindowParent

  • function TChromiumCore.CreateBrowser(aParentHandle : TCefWindowHandle; aParentRect : TRect; const aWindowName : ustring = ''; const aContext : ICefRequestContext = nil; const aExtraInfo : ICefDictionaryValue = nil; aForceAsPopup : boolean = False) : boolean;
    用于在全局请求上下文初始化后创建浏览器。在调用此函数之前需要设置所有属性和事件,因为它只会为这些事件创建内部处理程序,并且属性值将用于浏览器初始化。

  • procedure TChromiumCore.LoadURL(const aURL : ustring; const aFrameName : ustring = '');
    用于在指定的框架或主框架中导航到 URL。

  • procedure TChromiumCore.LoadString(const aHTML : ustring; const aFrameName : ustring = '');
    用于在指定的框架或主框架中加载包含 HTML 字符串内容的 DATA URI。

  • procedure TChromiumCore.LoadResource(const aStream : TCustomMemoryStream; const aMimeType, aCharset : string; const aFrameName : ustring = '');
    用于在指定的框架或主框架中加载包含流内容的 DATA URI。

  • procedure TChromiumCore.LoadRequest(const aRequest: ICefRequest);
    加载参数中指定的请求。

  • procedure TChromiumCore.GoBack;
    后退导航。

  • procedure TChromiumCore.GoForward;
    前进导航。

  • procedure TChromiumCore.Reload;
    重新加载页面。

  • procedure TChromiumCore.ReloadIgnoreCache;
    忽略缓存重新加载当前页面。

  • procedure TChromiumCore.StopLoad;
    停止加载。

  • procedure TChromiumCore.StartDownload(const aURL : ustring);
    开始下载指定 URL 的文件。

  • procedure TChromiumCore.DownloadImage(const imageUrl: ustring; isFavicon: Boolean; maxImageSize: cardinal; bypassCache: Boolean);
    开始下载指定 URL 的图像。

  • procedure TChromiumCore.SimulateMouseWheel(aDeltaX, aDeltaY : integer);
    调用 CefBrowserHost.SendMouseWheelEvent 来模拟简单的鼠标滚轮事件。

  • function TChromiumCore.ClearCertificateExceptions(aClearImmediately : boolean = True) : boolean;
    调用 CefRequestContext.ClearCertificateExceptions 清除所有证书异常。

  • function TChromiumCore.ClearHttpAuthCredentials(aClearImmediately : boolean = True) : boolean;
    清除所有 HTTP 身份验证凭据。

  • function TChromiumCore.CloseAllConnections(aCloseImmediately : boolean = True) : boolean;
    清除 Chromium 当前所有的活动连接和空闲连接。

  • procedure TChromiumCore.RetrieveHTML(const aFrameName : ustring = '');
    从指定的框架或主框架中检索所有 HTML 内容。

  • procedure TChromiumCore.RetrieveText(const aFrameName : ustring = '');
    从指定的框架或主框架中检索所有文本内容。

  • procedure TChromiumCore.GetNavigationEntries(currentOnly: Boolean);
    异步检索当前导航条目。

  • function TChromiumCore.GetFrameNames(var aFrameNames : TStrings) : boolean;
    返回所有现有框架的名称。

  • function TChromiumCore.GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean;
    返回所有现有框架的标识符。

  • procedure TChromiumCore.ExecuteJavaScript(const aCode, aScriptURL : ustring; const aFrameName : ustring = ''; aStartLine : integer = 0);
    在指定的框架或主框架中执行 JavaScript 代码。

  • procedure TChromiumCore.UpdatePreferences;
    使用 TChromiumCore 属性值异步更新浏览器首选项。

  • procedure TChromiumCore.SavePreferences(const aFileName : string);
    将浏览器首选项保存为文本文件。

  • procedure TChromiumCore.ResolveHost(const aURL : ustring);
    调用 CefRequestContext.ResolveHost 将 URL 中的域名解析为 IP 地址列表。

  • function TChromiumCore.IsSameBrowser(const aBrowser : ICefBrowser) : boolean;
    用于检查浏览器参数是否与 TChromiumCore 中选定的浏览器相同。

  • function TChromiumCore.ExecuteTaskOnCefThread(aCefThreadId : TCefThreadId; aTaskID : cardinal; aDelayMs : Int64 = 0) : boolean;
    调用 ExecuteTaskOnCefThread 函数将触发 TChromiumCore.OnExecuteTaskOnCefThread 事件。

  • procedure TChromiumCore.SetUserAgentOverride(const aUserAgent : ustring; const aAcceptLanguage : ustring = ''; const aPlatform : ustring = '');
    调用 Emulation.setUserAgentOverride DevTools 方法来覆盖用户代理字符串。

  • procedure TChromiumCore.ClearDataForOrigin(const aOrigin : ustring; aStorageTypes : TCefClearDataStorageTypes = cdstAll);
    调用 Storage.clearDataForOrigin DevTools 方法来清除给定来源的存储数据。

  • procedure TChromiumCore.ClearCache;
    调用 Network.clearBrowserCache DevTools 方法来清除缓存数据。

  • function TChromiumCore.DeleteCookies(const url : ustring = ''; const cookieName : ustring = ''; aDeleteImmediately : boolean = False) : boolean;
    用于立即或异步删除 Cookie。

  • function TChromiumCore.VisitAllCookies(aID : integer = 0) : boolean;
    触发 TChromiumCore.OnCookiesVisited 事件以访问每个 Cookie。

  • function TChromiumCore.VisitURLCookies(const url : ustring; includeHttpOnly : boolean = False; aID : integer = 0) : boolean;
    触发 TChromiumCore.OnCookiesVisited 事件以访问指定 URL 的 Cookie。

  • function TChromiumCore.SetCookie(const url, name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; same_site : TCefCookieSameSite; priority : TCefCookiePriority; aSetImmediately : boolean = True; aID : integer = 0): Boolean;
    设置 Cookie 并触发 TChromiumCore.OnCookieSet 事件。

  • function TChromiumCore.FlushCookieStore(aFlushImmediately : boolean = True) : boolean;
    用于刷新 Cookie。

  • procedure TChromiumCore.ShowDevTools(const inspectElementAt: TPoint; aWindowInfo: PcefWindowInfo);
    调用 CefBrowserHost.ShowDevTools 在单独的浏览器中打开开发者工具。

  • procedure TChromiumCore.CloseDevTools;
    调用 CefBrowserHost.CloseDevTools 关闭开发者工具。

  • function TChromiumCore.SendDevToolsMessage(const message_: ustring): boolean;
    调用 CefBrowserHost.SendDevToolsMessage 发送 DevTools 协议消息。

  • function TChromiumCore.ExecuteDevToolsMethod(message_id: integer; const method: ustring; const params: ICefDictionaryValue): Integer;
    调用 CefBrowserHost.ExecuteDevToolsMethod 执行 DevTools 协议函数。

  • function TChromiumCore.AddDevToolsMessageObserver(const observer: ICefDevToolsMessageObserver): ICefRegistration;
    用于添加自定义的 DevTools 消息观察器。

  • procedure TChromiumCore.Find(aIdentifier : integer; const aSearchText : ustring; aForward, aMatchCase, aFindNext : Boolean);
    调用 CefBrowserHost.Find 在当前网页中搜索文本。

  • procedure TChromiumCore.StopFinding(aClearSelection : Boolean);
    调用 CefBrowserHost.StopFinding 停止在当前网页中搜索文本。

  • procedure TChromiumCore.Print;
    打印当前浏览器内容。

  • procedure TChromiumCore.PrintToPDF(const aFilePath, aTitle, aURL : ustring);
    将当前浏览器内容打印为 PDF 文件。

  • procedure TChromiumCore.ClipboardCopy;
    复制到剪贴板。

  • procedure TChromiumCore.ClipboardPaste;
    从剪贴板粘贴。

  • procedure TChromiumCore.ClipboardCut;
    剪切到剪贴板。

  • procedure TChromiumCore.ClipboardUndo;
    撤销操作。

  • procedure TChromiumCore.ClipboardRedo;
    重做操作。

  • procedure TChromiumCore.ClipboardDel;
    删除操作。

  • procedure TChromiumCore.SelectAll;
    全选操作。

  • procedure TChromiumCore.IncZoomStep;
    增加缩放步长。

  • procedure TChromiumCore.DecZoomStep;
    减少缩放步长。

  • procedure TChromiumCore.IncZoomPct;
    增加缩放百分比。

  • procedure TChromiumCore.DecZoomPct;
    减少缩放百分比。

  • procedure TChromiumCore.ResetZoomStep;
    重置缩放步长。

  • procedure TChromiumCore.ResetZoomLevel;
    重置缩放级别。

  • procedure TChromiumCore.ResetZoomPct;
    重置缩放百分比。

  • procedure TChromiumCore.ReadZoom;
    读取缩放值。

  • procedure TChromiumCore.WasResized;
    在 OSR 模式下通知浏览器内容面板已调整大小。

  • procedure TChromiumCore.WasHidden(hidden: Boolean);
    在 OSR 模式下通知浏览器已隐藏或显示。

  • procedure TChromiumCore.NotifyScreenInfoChanged;
    在 OSR 模式下通知浏览器屏幕信息已更改。

  • procedure TChromiumCore.NotifyMoveOrResizeStarted;
    在 OSR 模式下通知浏览器窗口即将移动或调整大小。

  • procedure TChromiumCore.Invalidate(type_: TCefPaintElementType = PET_VIEW);
    在 OSR 模式下使视图无效。

  • procedure TChromiumCore.SendExternalBeginFrame;
    在 OSR 模式下向 Chromium 发出 BeginFrame 请求。

  • procedure TChromiumCore.SendKeyEvent(const event: PCefKeyEvent);
    向浏览器发送键盘事件。

  • procedure TChromiumCore.SendMouseClickEvent(const event: PCefMouseEvent; type_: TCefMouseButtonType; mouseUp: Boolean; clickCount: Integer);
    向浏览器发送鼠标点击事件。

  • procedure TChromiumCore.SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean);
    向浏览器发送鼠标移动事件。

  • procedure TChromiumCore.SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer);
    向浏览器发送鼠标滚轮事件。

  • procedure TChromiumCore.SendTouchEvent(const event: PCefTouchEvent);
    向无窗口浏览器发送触摸事件。

  • procedure TChromiumCore.SendFocusEvent(setFocus: Boolean);
    向浏览器发送焦点事件。

  • procedure TChromiumCore.SendCaptureLostEvent;
    向浏览器发送捕获丢失事件。

  • procedure TChromiumCore.SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage; const aFrameName : ustring = '');
    使用指定的框架或主框架向目标进程发送消息。

  • function TChromiumCore.CreateUrlRequest(const request: ICefRequest; const client: ICefUrlrequestClient; const aFrameName : ustring = ''): ICefUrlRequest;
    创建一个新的 URL 请求,该请求将被视为源自指定的框架或主框架。

  • procedure TChromiumCore.SetFocus(focus: Boolean);
    设置浏览器是否获得焦点。

  • procedure TChromiumCore.SetAccessibilityState(accessibilityState: TCefState);
    为所有框架设置辅助功能状态。

  • procedure TChromiumCore.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations);
    当用户将鼠标拖入网页视图时调用此方法。

  • procedure TChromiumCore.DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations);
    在拖拽操作期间,每次鼠标在网页视图上移动时调用此方法。

  • procedure TChromiumCore.DragTargetDragLeave;
    当用户将鼠标拖出网页视图时调用此方法。

  • procedure TChromiumCore.DragTargetDrop(const event: PCefMouseEvent);
    当用户完成拖拽操作并将对象拖放到网页视图上时调用此方法。

  • procedure TChromiumCore.DragSourceEndedAt(x, y: Integer; op: TCefDragOperation);
    当由 CefRenderHandler.StartDragging 调用启动的拖拽操作结束时调用此方法。

  • procedure TChromiumCore.DragSourceSystemDragEnded;
    当由 CefRenderHandler.StartDragging 调用启动的拖拽操作完成时调用此方法。

  • procedure TChromiumCore.IMESetComposition(const text: ustring; const underlines : TCefCompositionUnderlineDynArray; const replacement_range, selection_range : PCefRange);
    开始新的 IME 组合或更新现有的 IME 组合。

  • procedure TChromiumCore.IMECommitText(const text: ustring; const replacement_range : PCefRange; relative_cursor_pos : integer);
    通过插入指定的文本完成现有的 IME 组合。

  • procedure TChromiumCore.IMEFinishComposingText(keep_selection : boolean);
    通过应用当前的 IME 组合内容完成现有的 IME 组合。

  • procedure TChromiumCore.IMECancelComposition;
    取消现有的 IME 组合并丢弃组合内容。

  • procedure TChromiumCore.ReplaceMisspelling(const aWord : ustring);
    如果当前在可编辑节点中选择了拼写错误的单词,调用此方法将用指定的单词替换它。

  • procedure TChromiumCore.AddWordToDictionary(const aWord : ustring);
    将指定的单词添加到拼写字典中。

  • procedure TChromiumCore.UpdateBrowserSize(aLeft, aTop, aWidth, aHeight : integer);
    在 Linux 中用于调整浏览器内容的大小。

  • procedure TChromiumCore.UpdateXWindowVisibility(aVisible : boolean);
    在 Linux 中用于更新浏览器的可见性。

  • function TChromiumCore.AddObserver(const observer: ICefMediaObserver): ICefRegistration;
    添加一个用于观察 MediaRouter 事件的观察器。

  • function TChromiumCore.GetSource(const urn: ustring): ICefMediaSource;
    返回指定媒体源 URN 的 MediaSource 对象。

  • procedure TChromiumCore.NotifyCurrentSinks;
    触发对所有已注册观察器的 CefMediaObserver.OnSinks 异步调用。

  • procedure TChromiumCore.NotifyCurrentRoutes;
    触发对所有已注册观察器的 CefMediaObserver.OnRoutes 异步调用。

  • procedure TChromiumCore.CreateRoute(const source: ICefMediaSource; const sink: ICefMediaSink);
    在源和接收器之间创建新的路由。

  • procedure TChromiumCore.GetDeviceInfo(const aMediaSink: ICefMediaSink);
    调用 CefMediaSink.GetDeviceInfo 异步检索设备信息。

  • function TChromiumCore.LoadExtension(const root_directory: ustring; const manifest: ICefDictionaryValue = nil; const handler: ICefExtensionHandler = nil; const requestContext : ICefRequestContext = nil) : boolean;
    调用 CefRequestContext.LoadExtension 加载浏览器扩展。

  • function TChromiumCore.DidLoadExtension(const extension_id: ustring): boolean;
    如果此上下文用于加载指定 ID 的扩展,则返回 true

  • function TChromiumCore.HasExtension(const extension_id: ustring): boolean;
    如果此上下文可以访问指定 ID 的扩展,则返回 true

  • function TChromiumCore.GetExtensions(const extension_ids: TStringList): boolean;
    检索此上下文可以访问的所有扩展的列表。

  • function TChromiumCore.GetExtension(const extension_id: ustring): ICefExtension;
    返回与 extension_id 匹配的扩展,如果没有匹配的扩展,则返回 nil


TChromiumCore 中的属性

  • DefaultUrl
    浏览器创建后加载的第一个 URL。

  • Options
    用于填充 TCefBrowserSettings 记录的属性,该记录在浏览器创建期间使用。

  • FontOptions
    字体选项。

  • DefaultEncoding
    默认编码。

  • PDFPrintOptions
    用于填充 TCefPdfPrintSettings 记录的属性,该记录在 TChromiumCore.PrintToPDF 调用中使用。

  • BrowserId
    调用 CefBrowser.GetIdentifier 方法返回选定浏览器的全局唯一标识符。

  • Browser
    返回选定浏览器的 CefBrowser 实例。

  • BrowserById
    返回具有指定 ID 的浏览器的 CefBrowser 实例。

  • BrowserCount
    返回启用多浏览器模式时浏览器数组中的浏览器数量。

  • BrowserIdByIndex
    返回启用多浏览器模式时指定数组位置中浏览器的标识符。

  • CefClient
    返回此浏览器中使用的 CefClient 实例。

  • ReqContextHandler
    返回此浏览器中使用的 CefRequestContextHandler 实例。

  • ResourceRequestHandler
    返回此浏览器中使用的 CefResourceRequestHandler 实例。

  • CefWindowInfo
    返回创建浏览器时使用的 TCefWindowInfo 记录。

  • VisibleNavigationEntry
    调用 CefBrowserHost.GetVisibleNavigationEntry 返回选定浏览器的当前可见导航条目。

  • RequestContext
    返回选定浏览器使用的 CefRequestContext 实例。

  • MediaRouter
    返回选定浏览器使用的 CefMediaRouter 实例。

  • MediaObserver
    返回选定浏览器使用的 CefMediaObserver 实例。

  • MediaObserverReg
    返回添加默认 MediaObserver 时获得的 CefRegistration 实例。

  • DevToolsMsgObserver
    返回选定浏览器使用的 CefDevToolsMessageObserver 实例。

  • DevToolsMsgObserverReg
    返回添加默认 DevToolsMessageObserver 时获得的 CefRegistration 实例。

  • ExtensionHandler
    返回选定浏览器使用的 CefExtensionHandler 实例。

  • MultithreadApp
    返回 GlobalCEFApp.MultiThreadedMessageLoop 的值。

  • IsLoading
    调用 CefBrowser.IsLoading,如果浏览器当前正在加载,则返回 true

  • HasDocument
    调用 CefBrowser.HasDocument,如果浏览器中已加载文档,则返回 true

  • HasView
    调用 CefBrowserHost.HasView,如果此浏览器包装在 CefBrowserView 中,则返回 true

  • HasDevTools
    调用 CefBrowserHost.HasDevTools,如果此浏览器当前有关联的 DevTools 浏览器,则返回 true

  • HasClientHandler
    如果 CefClient 具有有效值,则返回 true

  • HasBrowser
    如果此组件具有有效的选定浏览器,则返回 true

  • CanGoBack
    调用 CefBrowser.CanGoBack,如果浏览器可以后退导航,则返回 true

  • CanGoForward
    调用 CefBrowser.CanGoForward,如果浏览器可以前进导航,则返回 true

  • IsPopUp
    调用 CefBrowser.IsPopUp,如果窗口是弹出窗口,则返回 true

  • WindowHandle
    调用 CefBrowserHost.GetWindowHandle,返回此浏览器的窗口句柄。

  • OpenerWindowHandle
    调用 CefBrowserHost.GetOpenerWindowHandle,返回打开此浏览器的浏览器的窗口句柄。

  • BrowserHandle
    返回自动创建的用于显示网页内容的子控件的句柄。

  • WidgetHandle
    返回自动创建的用于显示网页内容的子控件的句柄。

  • RenderHandle
    返回自动创建的用于显示网页内容的子控件的句柄。

  • FrameIsFocused
    如果 CefBrowser.FocusedFrame 具有有效值,则返回 true

  • Initialized
    当浏览器完全初始化且未关闭时返回 true

  • RequestContextCache
    返回 CefRequestContext.CachePath 中的缓存值。

  • RequestContextIsGlobal
    调用 CefRequestContext.IsGlobal 检查请求上下文是全局上下文还是独立的。

  • DocumentURL
    返回主框架的 URL。

  • ZoomLevel
    返回当前的缩放级别。

  • ZoomPct
    返回当前的缩放百分比。

  • ZoomStep
    返回当前的缩放步长。

  • WindowlessFrameRate
    返回在 OSR 模式下,OnPaint 将被调用的最大帧率(fps)。

  • CustomHeaderName
    自定义 HTTP 头名称。

  • CustomHeaderValue
    自定义 HTTP 头值。

  • DoNotTrack
    设置为 true 以发送 DNT 头。

  • SendReferrer
    设置为 true 以发送引用头。

  • HyperlinkAuditing
    启用超链接审计。

  • AllowOutdatedPlugins
    允许使用过时的插件。

  • AlwaysAuthorizePlugins
    始终授权插件。

  • SpellChecking
    设置为 true 以启用拼写检查器。

  • SpellCheckerDicts
    拼写检查器使用的语言代码列表,例如 es-ES,en-US,fr-FR,de-DE,it-IT

  • HasValidMainFrame
    如果主框架存在且有效,则返回 true

  • FrameCount
    返回当前存在的框架数量。

  • DragOperations
    返回拖拽操作期间使用的 TCefDragOperation 值。

  • AudioMuted
    如果浏览器的音频被静音,则返回 true

  • SafeSearch
    强制在浏览器首选项中启用 Google 安全搜索。

  • YouTubeRestrict
    强制在浏览器首选项中启用 YouTube 限制。

  • PrintingEnabled
    在浏览器首选项中启用打印功能。

  • AcceptLanguageList
    设置浏览器首选项中的接受语言列表。

  • AcceptCookies
    设置浏览器首选项中的 Cookie 策略值。

  • Block3rdPartyCookies
    在浏览器首选项中阻止第三方 Cookie。

  • MultiBrowserMode
    启用多浏览器模式,允许 TChromiumCore 使用一个组件处理多个浏览器。

  • DefaultWindowInfoExStyle
    用于初始化浏览器的默认 ExStyle 值。

  • Offline
    使用 Network.emulateNetworkConditions DevTools 方法将浏览器设置为离线模式。

  • NetworkPredictions
    设置浏览器首选项中的网络预测选项。

  • QuicAllowed
    在浏览器首选项中启用 Quic 协议。

  • JavascriptEnabled
    在浏览器首选项中启用 JavaScript。

  • LoadImagesAutomatically
    在浏览器首选项中启用自动加载图像。

  • XDisplay
    在 Linux 中获取 Xdisplay 指针。

  • WebRTCIPHandlingPolicy
    设置浏览器首选项中的 WebRTC IP 处理策略。

  • WebRTCMultipleRoutes
    设置浏览器首选项中的 WebRTC 多路由选项。

  • WebRTCNonproxiedUDP
    设置浏览器首选项中的 WebRTC 非代理 UDP 选项。

  • ProxyType
    代理类型。

  • ProxyScheme
    代理方案。

  • ProxyServer
    代理服务器。

  • ProxyPort
    代理端口。

  • ProxyUsername
    代理用户名。

  • ProxyPassword
    代理密码。

  • ProxyScriptURL
    代理脚本 URL。

  • ProxyByPassList
    代理绕过列表。

  • MaxConnectionsPerProxy
    设置浏览器首选项中的每个代理的最大连接数。


TChromiumCore 中的自定义事件

  • OnTextResultAvailable
    TChromiumCore.RetrieveHTMLTChromiumCore.RetrieveText 调用后触发,返回 HTML 或文本结果。

  • OnPdfPrintFinished
    TChromiumCore.PrintToPDF 调用后触发,当 PDF 创建完成时。

  • OnPrefsAvailable
    TChromiumCore.SavePreferences 调用后触发,当首选项保存完成时。

  • OnCookiesDeleted
    TChromiumCore.DeleteCookies 调用后触发,当 Cookie 删除完成时。

  • OnResolvedHostAvailable
    TChromiumCore.ResolveHost 调用后触发,返回主机信息。

  • OnNavigationVisitorResultAvailable
    TChromiumCore.GetNavigationEntries 调用后触发,返回导航条目。

  • OnDownloadImageFinished
    TChromiumCore.DownloadImage 调用后触发,当下载完成时。

  • OnCookiesFlushed
    TChromiumCore.FlushCookieStore 调用后触发,当 Cookie 刷新完成时。

  • OnCertificateExceptionsCleared
    TChromiumCore.ClearCertificateExceptions 调用后触发,当证书异常清除完成时。

  • OnHttpAuthCredentialsCleared
    TChromiumCore.ClearHttpAuthCredentials 调用后触发,当 HTTP 身份验证凭据清除完成时。

  • OnAllConnectionsClosed
    TChromiumCore.CloseAllConnections 调用后触发,当所有连接关闭时。

  • OnExecuteTaskOnCefThread
    TChromiumCore.ExecuteTaskOnCefThread 调用后触发,在指定的 CEF 线程上下文中执行。

  • OnCookiesVisited
    TChromiumCore.VisitAllCookies 调用后触发,返回 Cookie 信息。

  • OnCookieVisitorDestroyed
    TChromiumCore.VisitAllCookies 调用后触发,当 ICefCookieVisitor 被销毁时。

  • OnCookieSet
    TChromiumCore.SetCookie 调用后触发,当 Cookie 设置完成时。

  • OnZoomPctAvailable
    在调用任何增加、减少或重置缩放的函数后触发,返回新的缩放值。

  • OnMediaRouteCreateFinished
    TChromiumCore.CreateRoute 调用后触发,当路由创建完成时。

  • OnMediaSinkDeviceInfo
    TChromiumCore.GetDeviceInfo 调用后触发,返回设备信息。

  • OnBrowserCompMsg
    在 Windows 中,当向 CEF 创建的子控件发送消息时触发。

  • OnWidgetCompMsg
    在 Windows 中,当向 CEF 创建的子控件发送消息时触发。

  • OnRenderCompMsg
    在 Windows 中,当向 CEF 创建的子控件发送消息时触发。


ICefClient 事件

  • OnProcessMessageReceived
    当从不同进程接收到新消息时调用。

ICefLoadHandler 事件

  • OnLoadStart
    在导航提交后且浏览器开始加载框架内容之前调用。

  • OnLoadEnd
    当浏览器完成加载框架时调用。

  • OnLoadError
    当导航失败或被取消时调用。

  • OnLoadingStateChange
    当加载状态发生变化时调用。


ICefFocusHandler 事件

  • OnTakeFocus
    当浏览器组件即将失去焦点时调用。

  • OnSetFocus
    当浏览器组件请求焦点时调用。

  • OnGotFocus
    当浏览器组件获得焦点时调用。


ICefContextMenuHandler 事件

  • OnBeforeContextMenu
    在显示上下文菜单之前调用。

  • OnRunContextMenu
    用于自定义显示上下文菜单。

  • OnContextMenuCommand
    用于执行从上下文菜单中选择的命令。

  • OnContextMenuDismissed
    当上下文菜单被关闭时调用,无论菜单是否为空或是否选择了命令。


ICefKeyboardHandler 事件

  • OnPreKeyEvent
    在键盘事件发送到渲染器之前调用。

  • OnKeyEvent
    在渲染器和页面中的 JavaScript 处理事件后调用。


ICefDisplayHandler 事件

  • OnAddressChange
    当框架的地址发生变化时调用。

  • OnTitleChange
    当页面标题发生变化时调用。

  • OnFavIconUrlChange
    当页面图标发生变化时调用。

  • OnFullScreenModeChange
    当页面中的网页内容切换全屏模式时调用。

  • OnTooltip
    当浏览器即将显示工具提示时调用。

  • OnStatusMessage
    当浏览器接收到状态消息时调用。

  • OnConsoleMessage
    用于显示控制台消息。

  • OnAutoResize
    当通过 CefBrowserHost.SetAutoResizeEnabled 启用自动调整大小且内容已自动调整大小时调用。

  • OnLoadingProgressChange
    当整体页面加载进度发生变化时调用。

  • OnCursorChange
    当浏览器的光标发生变化时调用。


ICefDownloadHandler 事件

  • OnBeforeDownload
    在下载开始之前调用。

  • OnDownloadUpdated
    当下载的状态或进度信息更新时调用。


ICefJsDialogHandler 事件

  • OnJsdialog
    用于运行 JavaScript 对话框。

  • OnBeforeUnloadDialog
    用于运行询问用户是否要离开页面的对话框。

  • OnResetDialogState
    用于取消任何挂起的对话框并重置任何保存的对话框状态。

  • OnDialogClosed
    当默认实现的对话框关闭时调用。


ICefLifeSpanHandler 事件

  • OnBeforePopup
    在创建新的弹出浏览器之前在 UI 线程上调用。

  • OnAfterCreated
    在创建新浏览器后调用。

  • OnBeforeClose
    在浏览器销毁之前调用。

  • OnClose
    当浏览器收到关闭请求时调用。


ICefRequestHandler 事件

  • OnBeforeBrowse
    在浏览器导航之前在 UI 线程上调用。

  • OnOpenUrlFromTab
    在某些情况下,在 OnBeforeBrowse 之前在 UI 线程上调用。

  • OnGetAuthCredentials
    当浏览器需要用户凭据时在 IO 线程上调用。

  • OnQuotaRequest
    当 JavaScript 通过 webkitStorageInfo 请求特定存储配额大小时在 IO 线程上调用。

  • OnCertificateError
    在 UI 线程上处理具有无效 SSL 证书的 URL 请求。

  • OnSelectClientCertificate
    当请求客户端证书进行身份验证时在 UI 线程上调用。

  • OnPluginCrashed
    当插件崩溃时在浏览器进程的 UI 线程上调用。

  • OnRenderViewReady
    当与浏览器关联的渲染视图准备好接收/处理渲染进程中的 IPC 消息时在浏览器进程的 UI 线程上调用。

  • OnRenderProcessTerminated
    当渲染进程意外终止时在浏览器进程的 UI 线程上调用。

  • OnGetResourceRequestHandler_ReqHdlr
    在资源请求启动之前在浏览器进程的 IO 线程上调用。

  • OnDocumentAvailableInMainFrame
    当主框架的 window.document 对象已创建时在浏览器进程的 UI 线程上调用。


ICefResourceRequestHandler 事件

  • OnBeforeResourceLoad
    在资源请求加载之前在 IO 线程上调用。

  • OnGetResourceHandler
    在资源加载之前在 IO 线程上调用。

  • OnResourceRedirect
    当资源加载被重定向时在 IO 线程上调用。

  • OnResourceResponse
    当接收到资源响应时在 IO 线程上调用。

  • OnGetResourceResponseFilter
    在 IO 线程上可选地过滤资源响应内容。

  • OnResourceLoadComplete
    当资源加载完成时在 IO 线程上调用。

  • OnProtocolExecution
    在 IO 线程上处理具有未知协议组件的 URL 请求。


ICefCookieAccessFilter 事件

  • OnCanSendCookie
    在资源请求发送之前在 IO 线程上调用。

  • OnCanSaveCookie
    在接收到资源响应后在 IO 线程上调用。


ICefDialogHandler 事件

  • OnFileDialog
    用于运行文件选择对话框。

ICefRenderHandler 事件

  • OnGetAccessibilityHandler
    返回用于辅助功能通知的处理程序。

  • OnGetRootScreenRect
    用于检索根窗口的屏幕坐标矩形。

  • OnGetViewRect
    用于检索相对于屏幕坐标的视图矩形。

  • OnGetScreenPoint
    用于检索从视图坐标到实际屏幕坐标的转换。

  • OnGetScreenInfo
    用于允许客户端填充 CefScreenInfo 对象。

  • OnPopupShow
    当浏览器想要显示或隐藏弹出窗口时调用。

  • OnPopupSize
    当浏览器想要移动或调整弹出窗口大小时调用。

  • OnPaint
    当需要绘制元素时调用。

  • OnAcceleratedPaint
    当元素已渲染到共享纹理句柄时调用。

  • OnStartDragging
    当用户在网页视图中开始拖拽内容时调用。

  • OnUpdateDragCursor
    当网页视图想要在拖拽操作期间更新鼠标光标时调用。

  • OnScrollOffsetChanged
    当滚动偏移量发生变化时调用。

  • OnIMECompositionRangeChanged
    当 IME 组合范围发生变化时调用。

  • OnTextSelectionChanged
    当指定浏览器的文本选择发生变化时调用。

  • OnVirtualKeyboardRequested
    当需要为指定浏览器显示或隐藏屏幕键盘时调用。


ICefDragHandler 事件

  • OnDragEnter
    当外部拖拽事件进入浏览器窗口时调用。

  • OnDraggableRegionsChanged
    当浏览器窗口的可拖拽区域发生变化时调用。


ICefFindHandler 事件

  • OnFindResult
    用于报告由 TChromiumCore.Find 返回的查找结果。

ICefRequestContextHandler 事件

  • OnRequestContextInitialized
    在请求上下文初始化后立即在浏览器进程的 UI 线程上调用。

  • OnBeforePluginLoad
    在加载插件实例之前在多个浏览器进程线程上调用。

  • OnGetResourceRequestHandler_ReqCtxHdlr
    在资源请求启动之前在浏览器进程的 IO 线程上调用。


ICefMediaObserver 事件

  • OnSinks
    当可用媒体接收器列表发生变化或调用 TChromiumCore.NotifyCurrentSinks 时调用。

  • OnRoutes
    当可用媒体路由列表发生变化或调用 TChromiumCore.NotifyCurrentRoutes 时调用。

  • OnRouteStateChanged
    当路由的连接状态发生变化时调用。

  • OnRouteMessageReceived
    当通过路由接收到消息时调用。


ICefAudioHandler 事件

  • OnGetAudioParameters
    在 UI 线程上调用以允许配置音频流参数。

  • OnAudioStreamStarted
    当浏览器开始流式传输音频时在浏览器音频捕获线程上调用。

  • OnAudioStreamPacket
    当接收到音频流的 PCM 数据包时在音频流线程上调用。

  • OnAudioStreamStopped
    当音频流停止时在 UI 线程上调用。

  • OnAudioStreamError
    当发生错误时在 UI 或音频流线程上调用。


ICefDevToolsMessageObserver 事件

  • OnDevToolsMessage
    当接收到 DevTools 协议消息时调用,参数中包含解析后的 JSON 文本。

  • OnDevToolsRawMessage
    当接收到 DevTools 协议消息时调用,参数中包含未解析的文本。

  • OnDevToolsMethodResult
    在尝试执行 DevTools 协议函数后调用,参数中包含解析后的 JSON 文本。

  • OnDevToolsMethodRawResult
    在尝试执行 DevTools 协议函数后调用,参数中包含未解析的文本。

  • OnDevToolsEvent
    当接收到 DevTools 协议事件时调用,参数中包含解析后的 JSON 文本。

  • OnDevToolsRawEvent
    当接收到 DevTools 协议事件时调用,参数中包含未解析的文本。

  • OnDevToolsAgentAttached
    当 DevTools 代理已附加时调用。

  • OnDevToolsAgentDetached
    当 DevTools 代理已分离时调用。


ICefExtensionHandler 事件

  • OnExtensionLoadFailed
    TChromiumCore.LoadExtension 请求失败时调用。

  • OnExtensionLoaded
    TChromiumCore.LoadExtension 请求成功时调用。

  • OnExtensionUnloaded
    CefExtension.Unload 请求完成后调用。

  • OnExtensionBeforeBackgroundBrowser
    当扩展需要一个浏览器来托管通过 background 清单键指定的后台脚本时调用。

  • OnExtensionBeforeBrowser
    当扩展 API(例如 chrome.tabs.create)请求创建新浏览器时调用。

  • OnExtensionGetActiveBrowser
    当未指定 tabId 时调用。

  • OnExtensionCanAccessBrowser
    当指定了与 target_browser 关联的 tabId 时调用。

  • OnExtensionGetExtensionResource
    用于检索通常从磁盘加载的扩展资源。


ICefPrintHandler 事件

  • OnPrintStart
    当指定浏览器的打印开始时调用。

  • OnPrintSettings
    同步客户端状态与设置。

  • OnPrintDialog
    显示打印对话框。

  • OnPrintJob
    将打印作业发送到打印机。

  • OnPrintReset
    重置与打印相关的客户端状态。

  • OnGetPDFPaperSize
    返回 PDF 纸张大小(以设备单位为单位)。


Demo 详解

ConsoleBrowser

在控制台应用程序中加载的DLL中创建的OSR模式浏览器。

ConsoleBrowser2

创建一个OSR浏览器线程并截取屏幕截图的控制台应用程序。

CookieVisitor

使用TCefCookieManagerRef读取所有Cookie的浏览器。

CustomResourceBrowser

一个简单的浏览器,显示自定义资源和网页,而不是互联网网站。

DLLBrowser

从DLL创建的网页浏览器。

DOMVisitor

使用CEF类的基本DOM访问器。包括节点搜索和DOM遍历。

EditorBrowser

使用TChromiumTCEFWindowParent的HTML编辑器。

Extensions

  • HelloWorldExt
    加载一个简单的“Hello World”扩展。
  • PageColorExt
    加载“设置页面颜色”扩展,允许更改页面背景颜色。

ExternalPumpBrowser

使用TChromiumTCEFWindowParent组件并采用外部消息泵的浏览器。

FullScreenBrowser

使用TChromiumTCEFWindowParent的简单全屏浏览器。按ESC键退出。

JavaScript

  • CustomTitleBar
    使用控制Delphi表单的JS扩展的浏览器。
  • JSDialog
    演示如何使用自定义JS对话框。
  • JSEval
    此演示使用V8Context评估JavaScript代码。
  • JSExecutingFunctions
    此演示展示如何注册和执行具有本地实现的自定义JS函数。
  • JSExtension
    演示如何注册一个带有函数的基本JS扩展,以及如何在进程之间发送信息。
  • JSExtensionWithFunction
    演示如何注册一个带有返回值函数的JS扩展。
  • JSExtensionWithObjectParameter
    演示如何注册一个带有参数的JS扩展。
  • JSRTTIExtension
    此演示类似于JSExtension,但使用RTTI注册扩展。
  • JSSimpleExtension
    此演示注册一个设置变量值的JS扩展。
  • JSSimpleWindowBinding
    演示如何将值附加到框架的窗口对象。
  • JSWindowBindingSubProcess
    此演示类似于JSSimpleWindowBinding,但为子进程使用不同的可执行文件。
  • JSWindowBindingWithArrayBuffer
    此演示类似于JSSimpleWindowBinding,但附加一个带有数组缓冲区的值。
  • JSWindowBindingWithFunction
    演示如何将函数绑定到窗口对象。
  • JSWindowBindingWithObject
    此演示类似于JSSimpleWindowBinding,但附加一个带有对象的值。

KioskOSRBrowser

OSR模式下的全屏Kiosk浏览器,带有虚拟键盘,当用户点击可编辑的HTML元素时自动显示。上下文菜单还有一个显示/隐藏键盘的选项。按ESC键退出此演示。

MDIBrowser
在一个MDI应用程序中使用多个TChromium组件。

MDIExternalPumpBrowser

在一个MDI应用程序中使用多个TChromium组件,并采用外部消息泵配置。

MediaRouter

演示如何使用媒体设备发现和消息传递。

MiniBrowser

使用TChromiumTCEFWindowParent的网页浏览器。具有自定义上下文菜单、基本网页浏览器界面、开发者工具、缩放、打印、代理设置以及一些额外功能,如复制HTML和JavaScript打印。

OAuth2Tester

使用TCEFServerComponentTCEFUrlRequestClientComponent进行OAuth 2.0用户认证和REST API请求。

OSRExternalPumpBrowser

使用外部消息泵的OSR模式浏览器。

PopupBrowser

此演示展示如何在OSR模式下使用自定义表单处理弹出窗口。

PopupBrowser2

此演示展示如何在正常模式下使用自定义表单处理弹出窗口。

PostInspectorBrowser

带有POST数据检查器的网页浏览器。

ResponseFilterBrowser

使用自定义响应过滤器的TChromiumTCEFWindowParent组件构建的浏览器。

SchemeRegistrationBrowser

URL方案注册,显示自定义网页。

SimpleBrowser

使用CEF4Delphi创建的最简单的网页浏览器。使用TChromiumWindow组件。

SimpleBrowser2

使用CEF4Delphi创建的最简单的网页浏览器。使用TChromiumTCEFWindowParent两个组件的组合。

SimpleExternalPumpBrowser

使用TChromiumWindow组件并采用外部消息泵配置的浏览器。

SimpleOSRBrowser

使用TChromium在OSR模式下创建的网页浏览器,适用于需要离屏渲染的场景。

SimpleServer

使用TCEFServerComponent组件构建的HTTP和WebSocket服务器,用于本地主机应用程序之间的通信。

SubProcess

为CEF子进程使用不同可执行文件的网页浏览器。

TabbedBrowser

在选项卡中使用多个TChromiumTCEFWindowParent组件。

TabbedBrowser2

在选项卡中使用TFrame内的多个TChromiumTCEFWindowParent组件。

TinyBrowser

使用Views Framework创建的微型网页浏览器,无需VCL或FMX。

TinyBrowser2

极其简单的浏览器,类似于CEF项目中的cefsimple演示。

ToolBoxBrowser

在一个应用程序中使用多个TChromium组件的工具箱表单。

ToolBoxBrowser2

使用Views Framework创建的子表单中的简单浏览器。

ToolBoxSubProcessBrowser

类似于ToolBoxBrowser的演示,但为CEF子进程使用不同的可执行文件。

URLRequest

演示如何使用TCEFUrlRequestClientComponent组件进行URL请求。

WebpageSnapshot

创建一个OSR浏览器线程并截取屏幕截图的桌面应用程序。

你可能感兴趣的:(Delphi,名库讲解,浏览器)