Не вярвам, че има публичен, документиран метод за това.
Разгледайте изходния код на WebView, по-специално изходния файл "WebPluginDatabase.mm", за да добиете представа как се оценяват пътищата на приставките и какъв приоритет се дава на приставките, открити на различни места. По подразбиране изглежда, че пътят за търсене върви в този ред:
- ~/Библиотека/Интернет плъгини
- /Библиотека/Интернет плъгини
- Папка с добавки на App Bundle
Така че по замисъл всеки плъгин, който включите в пакета на приложението си, по подразбиране ще бъде заменен от версия, намерена в папката на потребителската или системната библиотека.
Ако използването на недокументиран SPI е опция, виждам, че има метод на WebView.mm, който по същество отменя списъка с пътища на приставката, извиквайки подходяща конфигурация на WebPluginDatabase singleton:
- (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" да се зареди вместо това ;)
person
danielpunkass
schedule
10.09.2011