1

URLをロードしてpngとして保存するコードをAwesomium 1.6.6から1.7.1に移行しています。いくつかの問題について疑問に思っています:

  1. WebView.Source を設定すると、暗黙的にページが読み込まれますか (提供されたサンプルから判断すると、明らかに読み込みます)?

  2. WebView.ResourceRequest は、いくつかのフォーム データを投稿およびプッシュするようにリクエストを設定するために使用されました。1.7.1 の方法では、ResourceInterceptor を WebCore にアタッチし、イベントを発生させて WebView でキャッチし、ProcessId に対してスクリーニングします。しかし、これを簡単にするために ResourceInterceptor を WebView にアタッチする方法はありますか?

  3. WebView.RequestScrollData() と WebView.ScrollDataReceived を使用して、サイズ変更用の幅/高さのデータを取得していました。それは WebView.Height/Width から取得することになっていますか? また、いつ設定されることが保証されますか (つまり、LoadingFrameComplete など)?

  4. サイズ変更が終了したこと、つまり以前の WebView.ResizeComplete イベントを検出するにはどうすればよいですか?

4

1 に答える 1

2

うーん、これは恥ずかしい、ちょっと独り言です...

そこで、最後の 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;
于 2013-06-06T09:18:52.180 に答える