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