Awesomium没有加载页面或触发任何事件

时间:2013-08-15 17:48:30

标签: c# awesomium

我想做一些像加载网页一样简单的事情。出于某种原因,Awesomium没有更新IsLoading等属性,或触发DocumentReady或LoadingFrameComplete等事件,我不明白为什么,有人可以帮助我吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Awesomium.Core;

namespace DownloaderTest
{
    class ParsingHelper
    {
        WebView wv;

        public ParsingHelper(WebView web)
        {
            this.wv = web;
        }

        public void ParsingInitiation(string link)
        {
            wv.LoadingFrameComplete +=wv_LoadingFrameComplete;

            wv.Source = new Uri(link);
        }

        void wv_LoadingFrameComplete(object sender, FrameEventArgs e)
        {
            if(e.IsMainFrame)
            {
                //BeginParsing
                ((WebView)sender).LoadingFrameComplete -= wv_LoadingFrameComplete;
            }

        }
    }

    class Teste
    {
        WebView MainWeb = WebCore.CreateWebView(1024,768);

        public object[] ObtainInformation(int id)
        {
            ParsingHelper ph = new ParsingHelper(MainWeb);

            ph.ParsingInitiation("http://www.google.com");

            //More code

            return new object[] {};
        }


    }
}

如果我运行类似......

Teste t = new Teste();
t.ObtainInformation(1);

wv_LoadingFrameComplete永远不会被触发,我不明白为什么。

2 个答案:

答案 0 :(得分:1)

尝试此代码以检测完全加载的页面 loadingFrameCompete事件+ IsLoading属性

private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
        {
            if (!webControl1.IsLoading)
                MessageBox.Show("Page Loaded Completely");
        }

答案 1 :(得分:0)

在这里回答:http://answers.awesomium.com/questions/2260/awesomium-not-loading-page-or-triggering-any-event.html

您要么在非UI环境中使用Awesomium(不是WPF / WinForms控件),必须隐式调用WebCore.Update(),或者只是阻止同一个线程,因此无法触发事件。