SitesSDK.subscribe(messageType, callback)

Esta função é, na realidade, um listener de mensagens para as mensagens despachadas a partir do site do host. A chamada é assíncrona.

Parâmetros

A callback registada é chamada quando uma mensagem de um tipo específico é recebida pelo SDK. Se a callback devolver um valor, esse valor é devolvido novamente à página. Se não for transmitida nenhuma callback a esta função, qualquer listener registado para esse tipo específico de mensagem é apagado.

Estas são callbacks de JavaScript, pelo que a função deve utilizar um JavaScript Closure ou associar de modo apropriado a função para garantir que tem acesso ao contexto adequado.

Nome Tipo Descrição

messageType

cadeia de caracteres

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 do host.

Tipos de Mensagem

Tipo de Mensagem Descrição
SETTINGS_UPDATED Subscreva esta mensagem para ser notificado quando qualquer valor é alterado no painel Definições. Normalmente, o componente irá responder atualizando a respetiva apresentação na interface do utilizador.
TRIGGER_ACTIONS Publicar esta mensagem gera um trigger e transmite o payload.
EXECUTE_ACTION Subscreva esta mensagem para processar ações customizadas. O listener normalmente processa esta mensagem executando a ação fornecida.
GET_ACTIONS Subscreva esta mensagem para declarar uma matriz de ações que o componente pode executar. Devolve a matriz de ações.
GET_TRIGGERS Subscreva esta mensagem para declarar uma matriz de triggers que o componente pode gerar. Devolve a matriz de triggers.
COPY_CUSTOM_DATA Subscreva esta mensagem para processar a cópia dos Dados de Definições Customizadas para a área de transferência. Devolve um objeto que representa os dados a colocar na área de transferência.
PASTE_CUSTOM_DATA Subscreva esta mensagem para processar a colagem dos Dados de Definições Customizadas da área de transferência.

Utilização

Alguns listeners esperam que sejam transmitidos dados e outros é suposto que devolvam dados.

Exemplo 1:

Registar um listener de mensagens para o tipo de mensagem EXECUTE_ACTION:

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

A função callback registada 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:

Normalmente, o listener COPY_CUSTOM_DATA é implementado com código semelhante ao seguinte:

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

O método copyCustomDataListener() irá devolver um objeto que representa os dados a copiar 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:

O pedido PASTE_CUSTOM_DATA aceita dados, mas não tem de devolver nada:

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

Juntamente com:

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