SitesSDK.subscribe(messageType, callback)

이 함수는 사실상 호스트 사이트에서 작업 할당된 메시지의 메시지 리스너입니다. 비동기 호출입니다.

매개변수

등록된 콜백은 SDK에서 특정 유형의 메시지를 수신할 때 호출됩니다. 콜백이 값을 반환하면 해당 값이 페이지로 다시 반환됩니다. 이 함수로 전달된 콜백이 없으면 특정 메시지 유형에 대해 등록된 리스너가 삭제됩니다.

이것은 JavaScript 콜백이므로 함수에 JavaScript 클로저를 사용하거나 함수를 적절히 바인딩하여 적합한 컨텍스트에 액세스할 수 있도록 해야 합니다.

이름 유형 설명

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) {
     ...
};