问题
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.
回答1:
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.
回答2:
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