此函数实际上是消息监听程序,监听主机站点发出的消息。调用是异步进行的。
参数
在 SDK 收到特定类型的消息时将调用注册的回调。如果回调返回值,则该值将重新返回到页。如果未向此函数传递任何回调,则将删除该特定消息类型对应的任何已注册监听程序。
这些是 JavaScript 回调,因此,该函数应使用 JavaScript 闭包或适当地绑定该函数,以确保它有权访问适当的上下文。
名称 | 类型 | 说明 |
---|---|---|
|
字符串 |
消息类型:
|
|
函数 |
从主机站点收到消息时的函数。 |
消息类型
消息类型 | 说明 |
---|---|
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) { ... };