在WebKit上的Mac OS应用程序中启用WebGL

And*_*izh 5 macos webkit objective-c webgl

我正在为Mac OS编写一个应用程序 - WebKit上的浏览器用于WebGL上的某个站点.一切准备就绪,应用程序正确显示正常的HTML网站,但WebGL不起作用.如何在我的应用程序中启用WebGL?

Kev*_*eid 7

一旦有了WebView,就会有一个未记录的方法可以启用WebGL:

WebPreferences *p = [webView preferences];
if ([p respondsToSelector:@selector(setWebGLEnabled:)]) {
    [p setWebGLEnabled:YES];
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,我已对其进行respondsToSelector:了保护,以确保在以后的版本删除此特定选项时代码不会中止.

请注意,我了解如果提交到Apple的Mac App Store,包含使用未记录的接口的代码的应用程序可能会被拒绝.


另一个选择是使用一个正式支持WebGL的不同嵌入式渲染器(在Safari中演示的Apple的WebKit仅将其作为开发人员选项,可能是为了试验).由于Firefox和Chrome都支持WebGL,请查看GeckoChromium Embedded Framework.(注意:我无法确认嵌入式Gecko是否支持WebGL.)