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