2013-06-04 66 views
1

我將代碼從Awesomium 1.6.6遷移到1.7.1,後者加載一個url並將其保存爲png。 琢磨一下幾個問題:關於將Awesomium 1.6.6遷移到1.7.1的WebView問題

  1. 是否設置WebView.Source隱含加載頁面(顯然確實,從所提供的樣本來看)?

  2. WebView.ResourceRequest被用來設置請求發佈和推送一些表單數據到它。在1.7.1中,我將一個ResourceInterceptor附加到WebCore中,並引發一個事件被WebViews捕獲並針對ProcessId進行篩選。但是,是否有任何方法將ResourceInterceptor附加到WebView以使其更簡單?

  3. WebView.RequestScrollData()和WebView.ScrollDataReceived被用來獲得寬度/高度數據調整大小。這是應該從WebView.Height /寬度現在?並且什麼時候保證被設置(即在加載幀完成等)?

  4. 我怎麼能檢測到大小調整已經結束,即前者WebView.ResizeComplete事件?

回答

2

那麼,這是令人尷尬的,我有點對自己說......

所以我想通了,最後兩個問題的答案:

入門大小應該通過做從的WebView LoadingFrameComplete事件執行JavaScript代碼:

WebView _view; 
    _view.LoadingFrameComplete += LoadingFrameCompleteHandler; 

    private void LoadingFrameCompleteHandler(object sender, FrameEventArgs e) 
    { 
     if (e.IsMainFrame) 
     { 
      var view = (WebView)sender; 
      var js = "(function() { some js code to return size })();"; 
      var size = view.ExecuteJavascriptWithResult(js); 

      if (size != JSValue.Null && size != JSValue.Undefined) 
      { 
       var values = (JSValue[])size; 
       int width = (int)values[0]; 
       int height = (int)values[1]; 
       view.Resize(width, height); 
      } 
     } 
    } 

這是你如何抓住調整大小:

WebView view; 
    ((BitmapSurface)view.Surface).Resized += YourResizeHandler;