我可以通过调整UIWebViewUIScrollView框架来捕获UIWebView的所有内容屏幕快照。但是,我无法通过相同的方法捕获WKWebView的所有内容屏幕快照。

我用于捕获UIWebView的方法如下:

  • 备用框架和webview.scrollView的概述
  • 创建一个新的容器视图作为webview.scrollView的 super 视图
  • 调整新容器视图和webview.scrollView的框架。框架与webview.scrollView.contentSize
  • 相同
  • 通过renderInContextdrawViewHierarchyInRect绘制

  • 但是,此方法将捕获WKWebview的白色屏幕截图。没用!

    我已经打印了所有级别的WKWebView,然后发现UIView(WKContentView)的大小与contentView相同,您可以在此级别找到此视图:
  • WKWebView
  • WKScrollView
  • WKContentView(大小与contentView相同)

  • 我还尝试通过WKContentView捕获,然后发现只能捕获可见视图。

    无论如何,任何人都可以告诉我如何捕获WKWebView的整个页面内容屏幕快照?

    最佳答案

    请参考此answer

    iOS 11.0及更高版本,Apple提供了以下API来捕获WKWebView的快照。

    @available(iOS 11.0, *)
        open func takeSnapshot(with snapshotConfiguration: WKSnapshotConfiguration?, completionHandler: @escaping (UIImage?, Error?) -> Swift.Void)
    

    关于ios - 如何捕获WKWebview的全屏截图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35406976/

    10-14 20:05