Bra*_*son 23
作为Joris答案的扩展(似乎是基于Nathan de Vries的工作),以下是我在iOS 5.0 SDK中启用WebGL所需的代码:
在视图控制器实现顶部附近的某处:
@interface UIWebView()
- (void)_setWebGLEnabled:(BOOL)newValue;
@end
Run Code Online (Sandbox Code Playgroud)
以编程方式创建UIWebView并启用WebGL:
UIWebView *webDetailView = [[UIWebView alloc] initWithFrame:mainScreenFrame];
id webDocumentView = [webDetailView performSelector:@selector(_browserView)];
id backingWebView = [webDocumentView performSelector:@selector(webView)];
[backingWebView _setWebGLEnabled:YES];
Run Code Online (Sandbox Code Playgroud)
我创建了一个示例应用程序,演示了在iPhone/iPad全屏UIWebView中运行的WebGL,使用WebGL暂存器站点http://glsl.heroku.com作为目标.要小心那里的一些例子甚至会使iPad 2停止运转,这可能导致硬重启.那里的表现似乎表明为什么WebGL在移动WebKit中仍处于官方不受支持的状态.
当然,正如已经说过的,这不能保证在未来的iOS版本上运行,并且会使您的应用程序从App Store中被拒绝.这对于业余爱好工作和内部测试非常有用.
我的iPad 2上运行WebGL的一个例子:

iOS上的WebKit实际上支持WebGL,从4.x开始(不确定哪个.x版本).它在iAd框架使用的webview中启用,WebKit(Safari和UIWebView)的所有其他用途都禁用了WebGL.
可以使用私有API启用WebGL(这不会通过提交过程).在您的webview子类中:
- (void)setWebGLEnabled:(BOOL)enableWebGL {
UIWebDocumentView* webDocumentView = [self _browserView];
WebView* backingWebView = [webDocumentView webView];
[backingWebView _setWebGLEnabled:enableWebGL];
}
Run Code Online (Sandbox Code Playgroud)
(通过)
这至少可以让你开始在iOS上试验WebGL.
不确定Android上的WebGL支持.相当最近在这个问题上的意见在Android跟踪表明,它是尚未公布.
(移动)浏览器中WebGL的一个很好的支持表:我什么时候可以使用WebGL
去现在最好的办法似乎是包括您自己的启用了WebGL的WebKit版本在你的应用程序包装两种iOS和Android.
| 归档时间: |
|
| 查看次数: |
25252 次 |
| 最近记录: |