ฟังก์ชันนี้เป็นลิสเทนนอร์ของข้อความสำหรับข้อความที่ส่งจากไซต์ของโฮสต์ การเรียกนี้เป็นแบบอะซิงโครนัส
พารามิเตอร์
ระบบจะเรียกการเรียกกลับที่รีจิสเตอร์ เมื่อ SDK ได้รับข้อความประเภทที่กำหนด ถ้าการเรียกกลับแสดงค่า ค่าดังกล่าวจะถูกส่งกลับไปที่เพจ ถ้าไม่มีการส่งการเรียกกลับไปยังฟังก์ชันนี้ ลิสเทนเนอร์ที่รีจิสเตอร์สำหรับข้อความประเภทนั้นจะถูกลบ
รายการเหล่านี้เป็นการเรียกกลับของ JavaScript ดังนั้น ฟังก์ชันควรใช้ JavaScript Closure หรือเชื่อมโยงฟังก์ชันให้เหมาะสมเพื่อให้แน่ใจว่ามีสิทธิ์เข้าใช้คอนเท็กซ์ที่ถูกต้อง
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
|
|
สตริง |
ประเภทข้อความ:
|
|
|
ฟังก์ชัน |
ฟังก์ชันเมื่อได้รับข้อความจากไซต์ของโฮสต์ |
ประเภทข้อความ
| ประเภทข้อความ | คำอธิบาย |
|---|---|
| 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) {
...
};