SitesSDK.subscribe(messageType, callback)

Această funcţie reprezintă în esenţă un listener pentru mesajele distribuite de la site-ul gazdă. Apelul este asincron.

Parametri

Reapelarea înregistrată este apelată când SDK-ul primeşte un mesaj de un anumit tip. Dacă reapelarea returnează o valoare, atunci acea valoare este returnată către pagină. Dacă nu se transmite nicio reapelare către această funcţie, atunci orice listener înregistrat pentru acel tip de mesaj va fi şters.

Acestea sunt reapelări JavaScript, astfel că funcţia trebuie să utilizeze JavaScript Closure sau să fie asociată în mod corect, pentru a se asigura că are acces la contextul corespunzător.

Nume Tip Descriere

messageType

şir

Tipul mesajului:

  • SETTINGS_UPDATED

  • TRIGGER_ACTIONS

  • EXECUTE_ACTION

  • GET_ACTIONS

  • GET_TRIGGERS

  • COPY_CUSTOM_DATA

  • PASTE_CUSTOM_DATA

callback

funcţie

Funcţia când se primeşte un mesaj de la un site gazdă.

Tipuri de mesaje

Tip mesaj Descriere
SETTINGS_UPDATED Abonaţi-vă la acest mesaj pentru a fi înştiinţat ori de câte ori se modifică o valoare din panoul de setări. În mod normal, componenta va răspunde prin actualizarea randării în interfaţa de utilizare.
TRIGGER_ACTIONS Publicarea acestui mesaj determină generarea unui trigger şi transmiterea unui payload.
EXECUTE_ACTION Abonaţi-vă la acest mesaj pentru a trata acţiuni personalizate. În mod normal, listenerul tratează acest mesaj prin efectuarea acţiunii corespunzătoare.
GET_ACTIONS Abonaţi-vă la acest mesaj pentru a declara o matrice de acţiuni pe care componenta le poate executa. Returnează matricea de acţiuni.
GET_TRIGGERS Abonaţi-vă la acest mesaj pentru a declara o matrice de triggere pe care componenta le poate genera. Returnează matricea de triggere.
COPY_CUSTOM_DATA Abonaţi-vă la acest mesaj pentru a trata copierea în clipboard a datelor personalizate despre setări. Returnează un obiect care reprezintă datele de plasat în clipboard.
PASTE_CUSTOM_DATA Abonaţi-vă la acest mesaj pentru a trata lipirea din clipboard a datelor personalizate despre setări.

Utilizare

Unele listenere aşteaptă transmiterea datelor, în timp ce de la altele se aşteaptă returnarea datelor.

Exemplu 1:

Înregistraţi un listener pentru tipul de mesaj EXECUTE_ACTION:

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

Funcţia callback înregistrată ar trebui să accepte un argument precum cel prezentat aici:

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

        }

Exemplu 2:

Listenerul COPY_CUSTOM_DATA este implementat în mod normal cu un cod precum acesta:

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

Metoda copyCustomDataListener() ar urma să returneze un obiect reprezentând datele de copiat în clipboard, de exemplu:

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

Exemplu 3:

Solicitarea PASTE_CUSTOM_DATA acceptă date, însă nu trebuie să returneze nimic:

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

Împreună cu:

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