我想做一些像加载网页一样简单的事情。出于某种原因,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
永远不会被触发,我不明白为什么。
答案 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(),或者只是阻止同一个线程,因此无法触发事件。