Плагины браузера не загружаются в реализации WebView

У меня есть приложение Cocoa, которое я пытаюсь написать, которое отображает веб-страницу. Эта веб-страница имеет встроенную кварцевую композицию в фоновом режиме, которая воспроизводится и работает в Safari, но она отображается в моем приложении Cocoa (вместо этого на заднем плане отображается отсутствующий значок плагина).

Странно то, что он работает на другом компьютере, на котором я его тестировал. Я где-то пропустил фреймворк или плагин, который может вызвать это?

Еще одно замечание: никакие плагины не работают. Например, когда WebView отображает youtube.com, он не может воспроизвести видео, так как сообщает, что плагин Flash не установлен. Опять же, тот же код работает на другом компьютере, но не на этом.

Спасибо! Любая помощь будет принята с благодарностью!


person dkaranovich    schedule 15.09.2009    source источник
comment
У меня точно такая же проблема со встроенным веб-приложением Java. В IB я включил Java в инспекторе, но она не работает, хотя в Safari все в порядке. Попробую метод ниже, но если у кого-то еще есть идеи...   -  person Cocoadelica    schedule 05.01.2011


Ответы (2)


Вам необходимо явно включить поддержку подключаемых модулей в WebView. Вы можете сделать это в Interface Builder (установите флажок Enable: Plugins) или в коде, вызвав -setPluginsEnabled: в объекте WebPreferences веб-представления:

WebPreferences *prefs = [webView preferences];
[prefs setPlugInsEnabled:YES];

Если у вас включены подключаемые модули, убедитесь, что подключаемые модули совместимы с архитектурой/средой выполнения, которую вы создаете. Если вы создаете 64-разрядное приложение или приложение со сбором мусора, любые подключаемые модули WebKit, которые вы загружаете, должны поддерживать архитектуру. Например, подключаемый модуль Flash не будет загружаться в приложении с поддержкой GC, хотя он загружается в 64-разрядной версии, поскольку в качестве подключаемого модуля NPAPI он загружается в 32-разрядной песочнице.

person Rob Keniger    schedule 15.09.2009
comment
Большое спасибо за ваш ответ, но это тоже не сработало. Я действительно думал, что это будет, хотя! Я начинаю думать, что это может быть не связано с кодом, а, возможно, со средой, в которой я запускаю приложение. Потому что, как я уже говорил ранее, он отлично работает на компьютере, на котором я пишу код, но компьютер, на котором я его тестирую, не работает. Очень странно! - person dkaranovich; 17.09.2009
comment
Каковы характеристики двух машин? На консоль что-нибудь выводится? - person Rob Keniger; 17.09.2009

Самое странное, единственное, что в итоге сработало, это собрать его на тестовой машине, а не на машине, на которой я разрабатывал. Как странно!

person dkaranovich    schedule 06.11.2009