CefMessageRouter 具体用法
技术大侠 发布于:2024-01-16 16:21:33
CefMessageRouter
是CEF提供的一个用于简化进程间通信的工具类。它可以帮助您注册和处理消息路由,实现渲染进程和主进程之间的双向通信。以下是使用CefMessageRouter
的一般步骤:
-
在渲染进程和主进程的代码中,包含
CefMessageRouter.h
头文件。#include \"include/cef_message_router.h\"
-
在渲染进程和主进程的代码中,创建一个
CefMessageRouterBrowserSide
对象和一个CefMessageRouterRendererSide
对象。// 渲染进程 CefRefPtr
browserSideRouter = CefMessageRouterBrowserSide::Create(); // 主进程 CefRefPtr rendererSideRouter = CefMessageRouterRendererSide::Create(); -
在渲染进程和主进程的代码中,使用
AddHandler
方法注册消息处理器。// 渲染进程 browserSideRouter->AddHandler(handler, is_first_handler); // 主进程 rendererSideRouter->AddHandler(handler, is_first_handler);
handler
是一个继承自CefMessageRouterBrowserSide::Handler
或CefMessageRouterRendererSide::Handler
的类,用于处理特定类型的消息。is_first_handler
是一个布尔值,指示是否将该处理器作为第一个处理器。如果有多个处理器注册了相同的消息类型,只有第一个处理器会被调用。
-
在渲染进程和主进程的代码中,使用
OnQuery
方法处理接收到的消息。// 渲染进程 bool handled = browserSideRouter->OnQuery(browser, frame, query_id, request, callback); // 主进程 bool handled = rendererSideRouter->OnQuery(browser, query_id, request, callback);
browser
是一个CefRefPtr
对象,表示当前的浏览器实例。frame
是一个CefRefPtr
对象,表示当前的浏览器帧。