我正在将代码从Awesomium 1.6.6迁移到1.7.1,它会加载一个url并将其保存为png。 想知道几个问题:
设置WebView.Source是否隐式加载页面(显然是这样,从提供的示例判断)?
WebView.ResourceRequest用于设置发布和推送一些表单数据的请求。在1.7.1方式中,我将ResourceInterceptor附加到WebCore并引发一个事件,以便被WebViews捕获并针对ProcessId进行筛选。但是,有没有办法将ResourceInterceptor连接到WebView以使其更简单?
WebView.RequestScrollData()和WebView.ScrollDataReceived用于获取调整大小的宽度/高度数据。这应该是从WebView.Height / Width中获取的吗?并且,何时保证设置(即在LoadingFrameComplete等)?
如何检测调整大小已结束,即以前的WebView.ResizeComplete事件?
答案 0 :(得分: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;