Я немного новичок в c# и CefSharp :-) так что будьте спокойны со мной!
Моя цель - вызвать URL-адрес, а затем исследовать DOM, чтобы получить данные и затем обработать эти данные для гипервизора. Я добился этого извлечения, и мой js код хорошо работает с помощью EvaluateScriptAsyn c.
. Теперь я хочу отслеживать данные refre sh. Страница обновляется посредством связи через веб-сокет, которая затем обновляет значения в объектной модели DOM.
Я думаю использовать RequestHandler и адаптировать GetResourceResponseFilter; но мне не удается это сделать, и кажется, что методы, которые я реализовал, никогда не вызывались ... я использую минимальное решение, загруженное с сайта проекта cefsharp. Я просто добавляю две строки в конце этого фрагмента:
public BrowserForm()
{
InitializeComponent();
Text = "CefSharp";
WindowState = FormWindowState.Maximized;
browser = new ChromiumWebBrowser("www.google.com");
toolStripContainer.ContentPanel.Controls.Add(browser);
browser.IsBrowserInitializedChanged += OnIsBrowserInitializedChanged;
browser.LoadingStateChanged += OnLoadingStateChanged;
browser.ConsoleMessage += OnBrowserConsoleMessage;
browser.StatusMessage += OnBrowserStatusMessage;
browser.TitleChanged += OnBrowserTitleChanged;
browser.AddressChanged += OnBrowserAddressChanged;
// Add this for request handler
Handler.RequestHandler requestHandler = new MyBasicRequestHandler();
browser.RequestHandler = requestHandler;
И мой тестовый обработчик выглядит так!
public class MyBasicRequestHandler : CefSharp.Handler.RequestHandler
{
public bool OnResourceResponse(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
{
MessageBox.Show ("OnResourceResponse");
return false;
}
public bool OnProtocolExecution(IWebBrowser browserControl, IBrowser browser, string url)
{
MessageBox.Show("OnProtocolExecution : "+url);
return false;
}
public IResponseFilter GetResourceResponseFilter(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IResponse response)
{
MessageBox.Show("GetResourceResponseFilter : " + request.ReferrerUrl);
return null;
}
}
Но ничего не запускается!
Буду признателен за любую помощь или совет.
спасибо!