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 |
---|---|---|
|
string |
Tipo de mensagem:
|
|
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) { ... };