Создание объекта плагина#

Перед тем, как веб-страница сможет работать с плагином, она должна его инстанцировать, то есть создать объект плагина на странице. Инстанцирование осуществляется в зависимости от используемого браузера. Для упрощения этого процесса рекомендуется использовать специальный JavaScript. Далее описываются функции этого скрипта.

Для инстанцирования плагина нужно вызвать функцию createFactory, которая имеет следующие параметры:

  • pluginName – имя плагина;

  • mimeType – тип передаваемых данных;

  • hostname – обратный домен нативного приложения, необходимый для корректного взаимодействия Chrome с плагином, например, ru.reaxoft.firewyrmhost;

  • minVersion (опциональный параметр) – минимальная требуемая версия плагина в формате 1.0.0.0, например 1.7.0.0.

После приобретения плагина значения этих параметров предоставляются клиенту. Например, для использования плагина Федресурс: ЭП Плагин необходимо использовать следующие параметры:

  • pluginName: Fedresurs DS Plugin

  • mimeType: application/x-fedresurs-d-s-plugin

  • hostname: ru.fedresurs.firewyrmhost

Функция createFactory возвращает функцию, необходимую для создания плагина на странице. При вызове этой функции в качестве параметров следует указать:

  • функцию, которую необходимо выполнить при успехе создания плагина;

  • функцию, которую необходимо выполнить при ошибке создания плагина. Данная функция в качестве первого параметра принимает код ошибки, второго – описание ошибки, третьего и последующих – функции, вызываемые в зависимости от типа ошибки.

При создании плагина возможны следующие ошибки:

  • plugin_not_available – плагин не установлен (или не разрешен запуск), в этом случае необходимо рекомендовать пользователю установить плагин. Также данная ошибка возможна и в случае попытки обращения к плагину версии 1.5.0.0 из Firefox версии 52 и выше – обновление плагина до версии 1.6.0.0 и выше решает эту проблему. В качестве третьего параметра передается функция waitingPluginCb, позволяющая перейти в режим ожидания установки плагина;

  • plugin_not_allowed – плагин заблокирован браузером, в этом случае необходимо рекомендовать пользователю разблокировать плагин. В качестве третьего параметра передается функция waitingAllowCb, позволяющая перейти в режим ожидания разблокирования плагина;

  • chrome_extension_not_available – не установлено или не доступно расширение для Chrome, необходимое для работы плагина. В этом случае следует рекомендовать пользователю установить расширение, предоставив ссылку для перехода на страницу плагина (второй параметр). В качестве третьего параметра передается функция waitingExtensionCb, позволяющая перейти в режим ожидания установки плагина;

  • firefox_extension_not_available – не установлено или недоступно расширение для Firefox (версии 52 и выше), необходимое для работы плагина. В этом случае следует рекомендовать пользователю установить расширение, предоставив ссылку для перехода на страницу плагина — второй параметр (ссылка временно недоступна, поскольку расширение пока не прошло процесс рецензирования для выкладывания на официальном сайте Firefox). В качестве третьего параметра передается функция waitingExtensionCb, позволяющая перейти в режим ожидания установки плагина. В качестве четвертого параметра можно указать URL на загрузку расширения с сайта производителя плагина (Identityblitz.ru). Поскольку расширение может быть установлено только по явному нажатию по ссылке, то в качестве пятого параметра следует указать функцию для установки расширения;

  • plugin_not_valid – плагин установлен, но работает некорректно, в этом случае необходимо рекомендовать пользователю обратиться к администратору (детальное описание ошибки передается во втором параметре);

  • plugin_old_version – старая версия плагина, текущая версия плагина передается в качестве второго параметра.

Результатом успешного выполнения функции создания плагина будет java-объект plugin, описанный далее.