Files
lserp_cs_5.0/插件库/cwber/common/ClientBrowser.cs
T
2026-07-10 15:25:05 +08:00

105 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using Cef3;
namespace Sashulin.common
{
public sealed class ClientBrowser : CefClient
{
private readonly CwbLifeSpanHandler _lifeSpanHandler;
private readonly CwbDisplayHandler _displayHandler;
private readonly CwbLoadHandler _loadHandler;
private readonly CwbKeyboardHandler _keyboardHandler;
private readonly FileDownloadHandler _fileDownloadHandler;
private readonly CwbRequestHandler _requestHandler;
private readonly CwbRenderHandler _renderHandler;
private readonly CwbMenuHandler _menuHandler;
private ChromeWebBrowser webBrowser;
public ClientBrowser(ChromeWebBrowser browser)
{
webBrowser = browser;
_lifeSpanHandler = new CwbLifeSpanHandler(browser);
_displayHandler = new CwbDisplayHandler(browser);
_loadHandler = new CwbLoadHandler(browser);
_keyboardHandler = new CwbKeyboardHandler(browser);
_fileDownloadHandler = new FileDownloadHandler(browser);
_requestHandler = new CwbRequestHandler(browser);
_renderHandler = new CwbRenderHandler(browser);
_menuHandler = new CwbMenuHandler(browser);
}
protected override CefLifeSpanHandler GetLifeSpanHandler()
{
return _lifeSpanHandler;
}
protected override CefDisplayHandler GetDisplayHandler()
{
return _displayHandler;
}
protected override CefLoadHandler GetLoadHandler()
{
return _loadHandler;
}
protected override CefKeyboardHandler GetKeyboardHandler()
{
return _keyboardHandler;
}
protected override bool OnProcessMessageReceived(CefBrowser browser, CefProcessId sourceProcess, CefProcessMessage message)
{
Console.WriteLine("Client::OnProcessMessageReceived: SourceProcess={0}", sourceProcess);
Console.WriteLine("Message Name={0} IsValid={1} IsReadOnly={2}", message.Name, message.IsValid, message.IsReadOnly);
var arguments = message.Arguments;
for (var i = 0; i < arguments.Count; i++)
{
var type = arguments.GetValueType(i);
object value;
switch (type)
{
case CefValueType.Null: value = null; break;
case CefValueType.String: value = arguments.GetString(i); break;
case CefValueType.Int: value = arguments.GetInt(i); break;
case CefValueType.Double: value = arguments.GetDouble(i); break;
case CefValueType.Bool: value = arguments.GetBool(i); break;
default: value = null; break;
}
Console.WriteLine(" [{0}] ({1}) = {2}", i, type, value);
}
if (message.Name == "myMessage2" || message.Name == "myMessage3") return true;
return false;
}
protected override CefDownloadHandler GetDownloadHandler()
{
return _fileDownloadHandler;
}
protected override CefRenderHandler GetRenderHandler()
{
return _renderHandler;
}
protected override CefRequestHandler GetRequestHandler()
{
return _requestHandler;
}
protected override CefJSDialogHandler GetJSDialogHandler()
{
return base.GetJSDialogHandler();
}
protected override CefContextMenuHandler GetContextMenuHandler()
{
return _menuHandler;
}
}
}