Я не верю, что существует публичный, документированный метод для этого.
Взгляните на исходный код WebView, в частности на исходный файл "WebPluginDatabase.mm", чтобы понятьдля того, как оцениваются пути плагинов и какой приоритет отдается плагинам, найденным в разных местах.По умолчанию кажется, что путь поиска идет в следующем порядке:
- ~ / Библиотеки / Интернет-плагины
- / Библиотека / Интернет-плагины
- ПриложениеПапка плагинов пакета
Таким образом, любой плагин, включенный в комплект вашего приложения, по умолчанию будет заменен версией, найденной в папке пользователя или системной библиотеки.
Если использование недокументированного SPI является опцией, я вижу, что в WebView.mm есть метод, который по существу переопределяет список путей подключаемых модулей, обращаясь к соответствующей конфигурации в синглтоне WebPluginDatabase:
- (void)_setAdditionalWebPlugInPaths:(NSArray *)newPaths
{
if (!_private->pluginDatabase)
_private->pluginDatabase = [[WebPluginDatabase alloc] init];
[_private->pluginDatabase setPlugInPaths:newPaths];
[_private->pluginDatabase refresh];
}
По темеВ решениях на основе SPI другой вопрос о переполнении стека содержит ответ, в котором описывается переопределение частного метода WebView для предоставления определенного подключаемого модуля на основе типа MIME:
Запрет Flash в Cocoa WebView
Это дает мне еще одну идею, которая может подойти для ваших целей.Поскольку вы отвечаете за весь процесс просмотра, вы можете рассмотреть возможность изменения всего HTML-кода, представленного в вашем браузере, сканирования и изменения любого содержимого, обычно связанного с плагином Flash, и изменения его для вызова пользовательского типа MIME.или что-то еще, чтобы вместо этого загрузить «DitchenFlash»;)