Ловите сетевые ошибки, используя Awesomium - PullRequest
0 голосов
/ 27 июня 2018

Я создаю безголовый браузер, используя Awesomium. Я хочу, чтобы браузер возвращал коды сетевых ошибок, поэтому я знаю, как и почему он ломается.

using (WebSession session = WebCore.CreateWebSession(new WebPreferences() { CustomCSS = "::-webkit-scrollbar { visibility: hidden; }" }))
        {
            using (WebView browserTab = WebCore.CreateWebView(1100, 600, session))
            {
                Console.WriteLine($"Starting WebCore v{WebCore.Version}");
                BadExample(browserTab, baseURL);
            }
        }

    static void BadExample(WebView browser, Uri url) {
browser.Source = (url + "/anyhing").ToUri();
        browser.LoadingFrameComplete += (sender, returnFrame) =>
        {
//NetError Code
        };
}

Как использовать enum NetError для возврата значений, которые я хочу?

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны подписаться на событие IWebView.LoadingFrameFailed (браузер в вашем случае).

Пока на странице может быть много кадров, событие будет срабатывать для каждого кадра. Ниже приведен фрагмент, который я использую в своем проекте.

private void ViewOnLoadingFrameFailed(object sender, LoadingFrameFailedEventArgs e)
{
    if (e.IsMainFrame)
    {
        var error = (NetError) e.ErrorCode;
        Logger.ErrorFormat("main frame loading failed: {0}-{1}", e.ErrorCode, e.ErrorDescription);
    }
    else
    {
        Logger.WarnFormat("frame #{0} loading failed: {1} - {2}", e.FrameId, e.ErrorCode, e.ErrorDescription);
    }
}
...