SitesSDK.subscribe(messageType, callback)

Essa função é efetivamente um listener das mensagens enviadas do site host. A chamada é assíncrona.

Parâmetros

O callback registrado é chamado quando uma mensagem de tipo específico é recebida pelo SDK. Se o callback retornar um valor, esse valor será retornado de volta para a página. Se nenhum callback for transmitido a essa função, qualquer listener registrado para esse tipo de mensagem específico será excluído.

Tratam-se de chamadas JavaScript; por isso, a função deve usar o JavaScript Closure ou fazer binding adequadamente da função para garantir que ela tenha acesso ao contexto apropriado.

Nome Tipo Descrição

messageType

string

Tipo de mensagem:

  • SETTINGS_UPDATED

  • TRIGGER_ACTIONS

  • EXECUTE_ACTION

  • GET_ACTIONS

  • GET_TRIGGERS

  • COPY_CUSTOM_DATA

  • PASTE_CUSTOM_DATA

callback

função

A função quando uma mensagem é recebida de um site host.

Tipos de Mensagem

Tipo de Mensagem Descrição
SETTINGS_UPDATED Assine essa mensagem para ser notificado quando qualquer valor for alterado no Painel de Definições. Normalmente, o componente responderá atualizando sua renderização na interface do usuário.
TRIGGER_ACTIONS A publicação dessa mensagem aciona um trigger e informa o payload.
EXECUTE_ACTION Assine essa mensagem para tratar ações personalizadas. O listener normalmente trata essa mensagem executando a ação em questão.
GET_ACTIONS Assine essa mensagem para declarar um array de ações que o componente pode executar. Retorna o array de ações.
GET_TRIGGERS Assine essa mensagem para declarar um array de triggers que o componente pode acionar. Retorna o array de triggers.
COPY_CUSTOM_DATA Assine essa mensagem para tratar a cópia de Definições Personalizadas para a área de transferência. Retorna um objeto que representa dados a serem colocados na área de transferência.
PASTE_CUSTOM_DATA Assine essa mensagem para tratar a colagem de Definições Personalizadas da área de transferência.

Uso

Alguns listeners esperam a transmissão de dados, enquanto outros devem retornar dados.

Exemplo 1:

Registre um listener de mensagens do tipo EXECUTE_ACTION:

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

A função callback registrada deve aceitar um argumento, conforme mostrado aqui:

// 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

        }

Exemplo 2:

O listener COPY_CUSTOM_DATA normalmente é implementado com um código semelhante a este:

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

O método copyCustomDataListener() retornaria um objeto representando os dados a serem copiados para a área de transferência, por exemplo:

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

Exemplo 3:

A solicitação PASTE_CUSTOM_DATA aceita dados, mas não precisa retornar nada:

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

Junto com:

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