目标:在网站加载完成后截取WKWebView的截图
采用的方法:
创建了一个名为screen capture()的扩展方法,它获取了WKWebView的图像
使我的UIViewController实现WKNavigationDelegate
设置wkwebview.navigationDelegate = self(在UIViewController init中)
在UIViewcontroller中实现didFinishNavigation委托func,为WKWebView调用屏幕捕获扩展方法
Run Code Online (Sandbox Code Playgroud)func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { let img = webView.screenCapture() }
问题:
我在这里错过了什么?我查看了WKWebView的所有可能的委托函数,没有其他任何东西似乎代表WKWebView中内容加载的完成.如果有解决方法,将不胜感激
更新:添加我用于截取Web视图截屏的截图代码
class func captureEntireUIWebViewImage(webView: WKWebView) -> UIImage? {
var webViewFrame = webView.scrollView.frame
if (webView.scrollView.contentSize != CGSize(width: 0,height: 0)){
webView.scrollView.frame = CGRectMake(webViewFrame.origin.x, webViewFrame.origin.y, webView.scrollView.contentSize.width, webView.scrollView.contentSize.height)
UIGraphicsBeginImageContextWithOptions(webView.scrollView.contentSize, webView.scrollView.opaque, 0)
webView.scrollView.layer.renderInContext(UIGraphicsGetCurrentContext())
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
webView.scrollView.frame = webViewFrame
return image
}
return nil
}
Run Code Online (Sandbox Code Playgroud)