Развертывание плагина NPAPI с минимальными шагами пользователя

Ситуация: Я уже написал элемент управления ActiveX для своих пользователей IE, который отлично работает. Я создаю .ocx, CAB, подписываю его и помещаю на сайт с помощью тега EMBED. Пользователи загружают страницу, появляется желтая полоса, спрашивая, хотят ли они ее установить: все, что им нужно сделать, это щелкнуть ее, и мы выключены.

Теперь мне нужно создать поддержку для FF, Chrome и Safari (на Mac). Из моих исследований NPAPI - это способ сделать это, и Firebreath должен облегчить его. Но из того, что я прочитал, развертывание не так просто. Пользователям Windows пришлось бы запускать "regsvr32" в DLL (что ни один из моих веб-пользователей на самом деле не делал). Я понятия не имею, что произойдет на Mac. Я считаю, что пользователь должен скопировать его в каталог, например /Library/Internet \Plugins/, который также не запускается для развертывания. Пользователи Firefox будут загружать/запускать .xpi. Предполагается, что Chrome должен работать .crx.

Есть ли у кого-нибудь опыт с этим? Как вы выполняете развертывание плагина NPAPI для других крупных 3-х браузеров?

Ответы

Ответ 1

Это вопрос, который очень сильно подпитывается пользователями FireBreath, поэтому, вероятно, о времени я ответил более подробно на форуме, который легче найти, чем в группе google проекта.

Прежде всего, чтобы очистить файл regsvr32, FireBreath действительно поддерживает "самостоятельную регистрацию" для всех браузеров; это означает, что при вызове regsvr32 он устанавливает ключи реестра не только для IE, но и для браузеров NPAPI, используя методы, связанные с DReJ (+1 для этой информации, кстати, спасибо. Многие не знают, где его найти).

Однако самозаписывающиеся библиотеки DLL сильно разочарованы в мире установщика и Microsoft. Для этого есть много причин. Вы сделали довольно хорошую работу по обобщению других параметров установки в своем сообщении; Вы можете использовать .cab для IE и .XPI в firefox, но, конечно же, это не поможет вам в других браузерах.

Метод, рекомендованный командой FireBreath (который я возглавляю), должен использовать установщик MSI для всех браузеров. Лично мне не нравится, что все вещи работают по-разному в разных браузерах для установки, поэтому я использую javascript для обнаружения присутствия (или отсутствия) плагина, а затем предлагаю пользователю загрузить и запустить установщик MSI.

FireBreath имеет "встроенную" поддержку для установки установщиков MSI с WiX. Если вы установите WiX 3.0 или более позднюю версию на свой компьютер и заново запустите prep script, он создаст проект _WiXInstaller, который построит базовый MSI для установки вашего плагина для всех браузеров в рамках процесса сборки Visual Studio. Вы можете изменить шаблон .wxs, который будет оставлен в вашем домашнем каталоге, чтобы настроить его.

Более подробную информацию можно найти в вики FireBreath: http://www.firebreath.org/display/documentation/WiX+Installer+Help http://www.firebreath.org/display/[email protected]/Potential+Installer+Improvements

Если вы действительно любите использовать ваш установщик .cab для IE (у меня были проблемы с ними, но некоторым, похоже, им повезло) вы можете распространять файл MSI внутри своей CAB и запускать его CAB установлен. Преимущество этого заключается в том, что при установке MSI он устанавливает все для IE, Firefox, Safari, Chrome и Opera (а также другие браузеры, которые совместимы с теми же технологиями плагинов, что и эти браузеры).

В качестве быстрой заметки причина, по которой MSI является идеальным решением для установки плагинов (в отличие от использования чего-то, что вызывает DllRegisterServer, например regsvr32), заключается в том, что MSI основана на транзакциях, поэтому при ее удалении всегда будет отменено то, что было Путин; это означает, что вам не нужно беспокоиться о том, что вы хотите удалить 10 разных старых версий установщика, которые помещают вещи в разные места и т.д., потому что система MSI позаботится о том, чтобы очистить все при обновлении.

Надеюсь, что это поможет!

Ответ 2

Для плагина NPAPI вам не нужно запускать "regsvr32", в Windows вам нужно записать материал в регистр, а на Mac или Linux вам нужно скопировать плагин в указанные места (см. "Установка подключаемых модулей" ). Я думаю, что самый простой способ развернуть плагин NPAPI в Windows - это создать установщик Windows, который установит как версии ActiveX, так и NPAPI плагина (например, вы можете посмотреть, как развертывание выполняется для коммерческих плагинов, таких как Unity3D, Roozz или Silverlight). То же самое и для Mac - просто создайте установщик.

Ответ 3

Я не знаю, как установить плагин из Safari.

Кроме того, имейте в виду, что, хотя вы можете подумать о развертывании в стиле расширения как более удобном для пользователей, не все, что необычно для пользователей Mac, использовать более одного браузера. Если вы заставляете их переустанавливать ваш плагин в каждом браузере, они будут запутаны (так как это не то, как браузерные плагины обычно развертываются на Mac) и раздражает. Установщик или ручная установка перетаскивания - стандартные способы развертывания плагинов на Mac.