我的应用程序有一个WKWebView,显示包含一些webGL内容的网页。我使用drawViewHierarchyInRect在网页加载后将WKWebView渲染为图像。这在模拟器上工作正常,但在手机上webGL内容不会呈现给图像。网页的其余部分呈现正常。在电话上,drawViewHierarchyInRect调用返回false(文档说“如果快照缺少层次结构中任何视图的图像数据,则返回false”)。
以下是我正在使用的代码:
UIGraphicsBeginImageContextWithOptions(webView.bounds.size, true, 0.0)
let drewOK = webView.drawViewHierarchyInRect(webView.bounds, afterScreenUpdates: true)
if (!drewOK)
{
print("drawViewHierarchyInRect failed") // when the web page contains webGL this is printed on a phone but not in simulator
}
let overlayImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
photoPreview.image = overlayImage
iOS 9和iOS 10都会出现此问题。
我还需要做些什么来让它在手机上运行吗?
可以使用演示项目on GitHub。
答案 0 :(得分:0)