如何捕获WKWebview的整页截图?

Sta*_*try 1 ios wkwebview

我可以捕获所有内容的截图UIWebView通过调整帧UIScrollViewUIWebView.但是,我无法WKWebView通过相同的方法捕获所有内容的截图.

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

  1. 备份框架和超视图 webview.scrollView
  2. 创建一个新的容器视图作为webview.scrollView超级视图
  3. 调整新容器视图的框架和webview.scrollView.框架是相同的webview.scrollView.contentSize
  4. 通过renderInContext或绘制drawViewHierarchyInRect

但是,这种方法会捕捉到白色的截图WKWebview.它不起作用!

我打印了所有级别WKWebView,然后我发现UIView(WKContentView)的大小与contentView相同,你可以通过这个级别找到这个视图:

  • WKWebView
    • WKScrollView
      • WKContentView(大小与contentView相同)

我也试图捕获WKContentView,然后我发现只能捕获可见的视图.

无论如何,任何人都可以告诉我如何捕获整页内容的截图WKWebView

Mav*_*ick 5

请参考这个答案

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

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