SitesSDK.subscribe(messageType, callback)

Фактически эта функция является прослушивателем сообщений для сообщений, отправленных с сайта хоста. Ее вызов выполняется асинхронно.

Параметры

Зарегистрированный обратный вызов вызывается, когда SDK получает сообщение определенного типа. Если обратный вызов возвращает значение, оно возвращается на страницу. Если обратный вызов не передан этой функции, удаляются все зарегистрированные прослушиватели сообщений этого типа.

Это обратные вызовы JavaScript, поэтому функция должна использовать JavaScript Closure или необходимо должным образом привязать функцию, чтобы обеспечить ее доступ к соответствующему контексту.

Имя Тип Описание

messageType

строка

Тип сообщения

  • SETTINGS_UPDATED

  • TRIGGER_ACTIONS

  • EXECUTE_ACTION

  • GET_ACTIONS

  • GET_TRIGGERS

  • COPY_CUSTOM_DATA

  • PASTE_CUSTOM_DATA

callback

функция

Функция при получении сообщения от сайта хоста.

Типы сообщений

Тип сообщения Описание
SETTINGS_UPDATED Подпишитесь на это сообщение, чтобы получать уведомления об изменении любого значения на панели "Настройки". Как правило, компонент отвечает, обновляя свою визуализацию в пользовательском интерфейсе.
TRIGGER_ACTIONS При публикации этого сообщения вызывается триггер и передаются полезные данные.
EXECUTE_ACTION Подпишитесь на это сообщение для обработки пользовательских действий. Прослушиватель обычно обрабатывает это сообщение, выполняя указанное действие.
GET_ACTIONS Подпишитесь на это сообщение, чтобы объявить массив действий, которые компонент может выполнить. Возвращает массив действий.
GET_TRIGGERS Подпишитесь на это сообщение, чтобы объявить массив триггеров, которые компонент может вызвать. Возвращает массив триггеров.
COPY_CUSTOM_DATA Подпишитесь на это сообщение, чтобы обрабатывать копирование данных пользовательских настроек в буфер обмена. Возвращает объект, представляющий данные, которые необходимо поместить в буфер обмена.
PASTE_CUSTOM_DATA Подпишитесь на это сообщение, чтобы обрабатывать синтаксический разбор данных пользовательских настроек из буфера обмена.

Синтаксис

Одни прослушиватели ожидают передачи данных, другие — возврата данных.

Пример 1.

Зарегистрируйте прослушиватель сообщений для сообщений типа EXECUTE_ACTION:

SitesSDK.subscribe(SitesSDK.MESSAGE_TYPES.EXECUTE_ACTION, self.executeAction,self);

Зарегистрированная функция callback должна принимать аргумент, как показано ниже:

// typical signature of a callback function registered with a message
// type
function (args) {
                var payload = args.detail.message.payload,
                                        action = args.detail.message.action,
                                        actionName =  action && action.actionName;

                // do something here with the payload data

        }

Пример 2.

Прослушиватель COPY_CUSTOM_DATA обычно реализуется с помощью кода, подобного следующему:

     // listen for COPY_CUSTOM_DATA request
     SitesSDK.subscribe(SitesSDK.MESSAGE_TYPES.COPY_CUSTOM_DATA, 

Метод copyCustomDataListener() возвращает объект, представляющий данные, которые необходимо скопировать в буфер обмена, например:

     // Handle Copy Style (save customSettingsData to the clipboard)
     self.copyCustomDataListener = function() {
         return {
             prop1: this.prop1(),
             prop2: this.prop2()
         };
     };

Пример 3.

Запрос PASTE_CUSTOM_DATA принимает данные, но ничего не должен возвращать:

// listen for PASTE_CUSTOM_DATA request
SitesSDK.subscribe(SitesSDK.MESSAGE_TYPES.PASTE_CUSTOM_DATA, pasteCustomDataListener);

А также:

// Handle Paste Style (apply customSettingsData from the clipboard)
self.pasteCustomDataListener = function(data) {
     ...
};