4

我正在尝试使用以下代码捕获可可 webview 的屏幕截图:

NSBitmapImageRep *bitmapRepRight = [[webView mainFrame].frameView bitmapImageRepForCachingDisplayInRect:cacheRect];

[[[webView mainFrame].frameView  documentView] layout];

[[webView mainFrame].frameView cacheDisplayInRect:cacheRect toBitmapImageRep:bitmapRepRight];

return [bitmapRepRight CGImage];

此代码是从 - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame 函数调用的。

我只得到页面的背景,但没有文字和图像。

如果我使用 [self performSelector:@selector(addPagesToCache) withObject:nil afterDelay:0.01] 调用它;然后它可以工作,但这根本不是一种干净的方式。

可能是什么问题,我该如何解决?

4

1 回答 1

0

如果您的 webview 可见(在窗口中),您可以使用 CGWindowListCreateImage 获取窗口的部分图像。这也是一种解决方法,而不是完美的解决方案。

于 2013-10-29T12:49:46.757 回答