2013-08-15 2 views
0

웹 페이지를로드하는 것과 같은 간단한 작업을 수행하고 싶습니다. 어떤 이유로 Awesomium은 IsLoading과 같은 속성을 업데이트하지 않거나 DocumentReady 또는 LoadingFrameComplete와 같은 이벤트를 트리거하지 않으며 왜 아무도 나를 도울 수 있습니까? 내가 좋아하는 뭔가를 실행하면Awesomium이 페이지를로드하지 않거나 이벤트를 트리거하지 않습니다.

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

여기 답변 : 당신은 그것을 발사 할 수 있도록 암시 아니면 그냥 동일한 스레드를 차단) 중 비 UI 환경 (안 WPF/윈폼 컨트롤)에 Awesomium를 사용하고 WebCore.Update을 (호출해야 http://answers.awesomium.com/questions/2260/awesomium-not-loading-page-or-triggering-any-event.html

이벤트.

+0

은'WebCore.Update()'메소드는 이제'WebCore.Run() 이후 사용되지 않습니다'이미있을 때 업데이트 처리 할 업데이트. –

+0

@ JonathanPerry iirc 그래도 일부 경우에는 필요할 수 있습니다. Awesomium 전체가 "비추천"된 것은 아니지만 3 년 동안 업데이트가 없었고 포럼도 폐쇄 된 것처럼 보입니다. – AlexP11223

+0

자신의 웹 사이트에 따르면 여전히 강해지고 있습니다. 저는 PhantomJS에 대한 대안을 찾고 있으며이 라이브러리를 발견했습니다. –

1

완전히로드 된 페이지를 감지하는이 코드를 시도 loadingFrameCompete 이벤트 특성을 IsLoading +

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