2010-11-30 1 views
0

Мне нужно выяснить способ установки плагинов специально для Safari на Mac. Если я скопирую файлы .plugin в папку Internet Plug-ins, он также будет обнаружен Firefox и Google Chrome, когда они будут запущены.Как обнаружить UserAgent в плагине NPAPI, прежде чем он будет зарегистрирован браузером?

Чтобы предотвратить это, я использовал вызов API NP_UserAgent для определения агента пользователя и выхода, если это не Safari. Однако плагины все еще зарегистрированы Google Chrome и Firefox. Нужно ли вообще делать то же самое, не заставляя браузер регистрировать плагин?

ответ

2

Если вы пишете плагин NPAPI, он должен работать в любом браузере. Можете ли вы объяснить, почему вы пытаетесь запретить пользователям использовать другие браузеры для использования плагина? В зависимости от базовой потребности может быть более подходящий подход. (Например, если это необходимо для работы в сочетании с расширением Safari, все, что вам нужно сделать, это использовать расширение MIME, которое обрабатывает только ваш плагин, и тогда не имеет значения, обнаруживают ли другие браузеры плагин, потому что он на самом деле никогда не будет создан).

Только для Safari или любой браузер, использующий структуру WebKit от Apple? Если последнее, вы можете написать WebKit plugin вместо плагина NPAPI.

+0

Спасибо @smorgan ... Подумайте, как я буду двигаться вперед. Да, ваша догадка абсолютно правильная ... Плагины работают вместе с расширением Safari. Это фактически существующее расширение для Firefox и Chrome, и я пытаюсь перенести его в Safari. Да, если вам это нравится :) http://www.cloudmagic.com/ – themoondothshine 2010-12-02 04:37:02

0

Одним из возможных решений является обнаружение браузера с JavaScript и вставка тега <object> в HTML-страницу, только если это Safari. Но, конечно, это не помешает регистрации плагина.

Другой способ - написать плагин WebKit для Safari. Его даже легко реализовать, чем NPAPI.