我正在爲WebKit上的某個站點使用WebKit編寫用於Mac OS的瀏覽器應用程序。一切就緒,應用程序正確顯示正常的HTML網站,但WebGL不起作用。如何在我的應用程序中啓用WebGL?在WebKit的Mac OS應用程序中啓用WebGL
5
A
回答
6
一旦你有一個WebView中,有一個無證方法它可以使的WebGL:
WebPreferences *p = [webView preferences];
if ([p respondsToSelector:@selector(setWebGLEnabled:)]) {
[p setWebGLEnabled:YES];
}
在這個例子中我與respondsToSelector:
保護,它保證了代碼,如果以後的版本中刪除此不會中止具體選項。
請注意,如果提交給Apple的Mac App Store,我知道包含使用未記錄界面的代碼的應用程序可能會被拒絕。
另一種選擇是使用不同的嵌入式渲染器正式支持WebGL的(其中爲證明在Safari蘋果的WebKit只有它作爲一個開發人員選項,大概意在實驗)。由於Firefox和Chrome都支持WebGL,請查看Gecko和Chromium Embedded Framework。 (注:我無法確認嵌入的Gecko是否支持WebGL。)
2
在小牛隊中,這是正確的代碼。
WebPreferences *preferences = [_webview preferences];
if([preferences respondsToSelector:@selector(setWebGLEnabled:)]){
[preferences performSelector:@selector(setWebGLEnabled:) withObject:[NSNumber numberWithBool:YES]];
}
你需要調用performSelector否則你會得到一個編譯錯誤。
0
我想出瞭如何在不使用未記錄的方法的情況下做到這一點。您需要將您的應用的用戶首選項WebKitWebGLEnabled
設置爲@YES
。要在第一次運行應用程序時應用該設置,需要在WebView
初始化之前儘早進行設置。就我而言,WebView
實例是從主要的nib文件加載的,所以這確實很早。我將此代碼添加到Supporting Files/main.m
:
[[NSUserDefaults standardUserDefaults] setObject:@YES
forKey:@"WebKitWebGLEnabled"];
請注意,由於沒有無證方法被調用時,我想這個代碼是App Store的指導方針,但我的應用程序尚未審查!
相關問題
- 1. 在Mac OS的NW.js應用程序中啓用應用程序菜單
- 2. 在Mac OS上的JavaFX應用程序
- 3. 在Mac OS上啓動silverlight應用程序
- 4. Mac OS - 使用launchctl添加應用程序以自動啓動
- 5. mac os中的離線應用程序緩存支持x嵌入式webkit webview
- 6. 在Android離子2應用程序中啓用WebGL
- 7. 應用程序音量mac os
- 8. 針對Mac OS 10.4+ GUI應用程序
- 9. MAC OS X可可應用程序
- 10. xcodebuild:構建Mac OS應用程序
- 11. 關閉Mac OS X應用程序
- 12. Mac Os控制面板應用程序
- 13. java應用程序凍結mac os 10.9
- 14. Mac OS應用程序簽名?
- 15. 應用程序包Mac OS X Leopard
- 16. Java應用程序Windows與Mac OS X
- 17. 如何在使用Python的Mac OS X上的前臺啓動應用程序?
- 18. 從Mac OS X控制檯啓動iOS應用程序
- 19. 如何從命令行啓動Mac OS X應用程序?
- 20. Mac OS X - 顯示器應用程序啓動?
- 21. 啓動在Mac OS X中沒有主窗口的應用程序
- 22. 如何在Mac OS中爲Java應用程序定製應用程序菜單
- 23. 如何在Mac OS系統啓動後自動啓動應用程序
- 24. WebGL的酷應用程序?
- 25. 在iOS和Mac OS X應用程序中使用C++
- 26. 在Mac OS X應用程序中使用網絡代理
- 27. 如何在mac OS應用程序中使用canOpenURL?
- 28. 如何在wxPython應用程序中使用Mac OS X NSEvents?
- 29. 跨平臺應用程序嵌入Webkit支持WebGL支持
- 30. iCloud在Mac OS X Lion的應用程序中支持
它的工作原理!感謝凱文:)謝謝注意,這是一個未記錄的方法,可以創建一些與Mac App Store提交問題。最好。 – Beny
有沒有什麼方法可以使用它來在快速外觀擴展中啓用WebGL?具體在'GeneratePreviewForURL'函數中? http://stackoverflow.com/q/18443710/148668 –