Как определить UserAgent в плагине NPAPI, прежде чем он будет зарегистрирован браузером? - PullRequest
0 голосов
/ 30 ноября 2010

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

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

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

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

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

0 голосов
/ 01 декабря 2010

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

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

...