Piszę aplikację na Mac OS - przeglądarkę w WebKit, która ma być używana na niektórych stronach w WebGL. Wszystko gotowe, aplikacja poprawnie wyświetla normalne strony HTML, ale WebGL nie działa. Jak włączyć WebGL w mojej aplikacji?Włącza WebGL w aplikacji Mac OS na WebKit
Odpowiedz
Gdy masz WebView istnieje nieudokumentowana metoda który może włączyć WebGL:
WebPreferences *p = [webView preferences];
if ([p respondsToSelector:@selector(setWebGLEnabled:)]) {
[p setWebGLEnabled:YES];
}
W tym przykładzie mam chronionego go respondsToSelector:
zapewnienie kod nie zostanie przerwana, jeśli nowsze wersje usunąć ten konkretna opcja.
Należy pamiętać, że rozumiem, że aplikacja zawierająca kod wykorzystujący nieudokumentowane interfejsy może zostać odrzucona, jeśli zostanie przesłana do sklepu Apple App Store firmy Apple.
Inną opcją jest użycie innego osadzonego renderujący, która oficjalnie obsługuje WebGL (gdzie Apple WebKit, jak wykazano w Safari ma go tylko jako opcja dewelopera, przypuszczalnie ma być doświadczalnie). Ponieważ zarówno Firefox, jak i Chrome obsługują WebGL, zobacz: Gecko i Chromium Embedded Framework. (Uwaga: Nie udało mi się potwierdzić, czy wbudowany Gecko obsługuje WebGL.)
W Mavericks jest to poprawny kod.
Musisz wywołać performSelector, w przeciwnym razie pojawi się błąd kompilacji.
Wymyśliłem, jak to zrobić bez użycia nieudokumentowanej metody. Musisz ustawić preferencję użytkownika WebKitWebGLEnabled
do @YES
dla swojej aplikacji. Aby ustawienie miało zastosowanie po pierwszym uruchomieniu aplikacji, należy je ustawić wcześniej, zanim zainicjowane zostanie WebView
. W moim przypadku instancja WebView
jest ładowana z głównego pliku nib, więc jest to bardzo wczesne. I dodaje ten kod do Supporting Files/main.m
:
[[NSUserDefaults standardUserDefaults] setObject:@YES
forKey:@"WebKitWebGLEnabled"];
Należy pamiętać, ponieważ żadna metoda nazywana jest nieudokumentowane, zakładam, że ten kod jest w app store wytycznych, ale moja aplikacja nie został jeszcze oceniony!
- 1. Aktualizacje aplikacji w systemie Mac OS X
- 2. włącza tematy dla aplikacji
- 3. . Aplikacja .NET do aplikacji Mac OS X?
- 4. Debugowanie i zabijanie aplikacji na Mac OS X?
- 5. Prosta awaria aplikacji na symulatorze iPhone'a/Mac OS 10.8.4
- 6. pygettext.py i msgfmt.py na Mac OS X
- 7. Building Google Breakpad na Mac OS X
- 8. Jak ustawić ikonę dla aplikacji aplikacji Mac OS X?
- 9. Czy webgl działa na chrome na Macu?
- 10. pathForResource zwraca zero w aplikacji konsoli Mac OS X - Swift
- 11. phantomjs kompilacja z webGL
- 12. Jak skonfigurować libusb na Mac OS X?
- 13. Tidy-html5 na Mac OS: jak zainstalować
- 14. Kompilowanie SOILu OpenGL na Mac OS X
- 15. Jak zainstalować mod_jk na Mac OS X
- 16. Odinstaluj MongoDB na Mac OS X
- 17. Uprawnienia XAMPP na Mac OS X?
- 18. linia poleceń IntelliJ na Mac OS X
- 19. Włączanie Xdebug na Mac OS X Lion
- 20. wxPython 2.9 na Mac Os X
- 21. Bieganie ddd na Mac OS X 10.7.5
- 22. Odinstalowywanie pakietów w systemie Mac OS X
- 23. Instalacja OpenMP na Mac OS X 10.11
- 24. Instalacja RVM wisi na Mac OS X
- 25. Instalacja/aktualizacja gradle na Mac OS X
- 26. Jak zainstalować wxPython na Mac OS X?
- 27. Instalowanie GraphicsMagick na Mac OS X 10.8
- 28. Łączenie statyczne wxHaskell na Mac OS X
- 29. Uruchamianie Eclipse na Mac OS X Lion
- 30. Mac OS X: Gdzie powinienem przechowywać typowe dane aplikacji?
To działa! Podziękowania dla Kevina :) A także podwójne podziękowania za odnotowanie, że jest to nieudokumentowana metoda, która może powodować problemy z przesyłaniem do Mac App Store. Najlepiej. – Beny
Czy jest jakiś sposób wykorzystania tego do włączenia WebGL w rozszerzeniu szybkiego rozszerzenia? W szczególności w funkcji 'GeneratePreviewForURL'? http://stackoverflow.com/q/18443710/148668 –