Tried ARKit to show WKWebView and all I got is a page that shows background but no foreground. The page can be scrolled though. I attached Apple web page as screenshot.
Here's the code:
DispatchQueue.main.async {
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 640, height: 480))
let request = URLRequest(url: URL(string: "https://www.apple.com")!)
webView.load(request)
plane.firstMaterial?.diffuse.contents = webView
}
Does that mean ARKit cannot display web page? I am using iOS 12 beta 2 running ARKit 2. I have also switch off App Transport Security Settings and allow arbitrary load.
I also look through this site and found someone with the same issue but no solution: WKWebView is showing only background
Update: It works for UIWebView.
The documentation explicity states that you can't display UIView
s as a SCNMaterialProperty
:
SceneKit cannot use a layer that is already being displayed elsewhere (for example, the backing layer of a UIView object).
One workaround would be to create an UIImage
of the page and present that.
It would be difficult to implement it using Scenekit Nodes, but would be working if you use SprikeKit Nodes. Use SpriteKit nodes for this.
来源:https://stackoverflow.com/questions/51131318/can-arkit-display-wkwebview