Web SDK API

การตรวจสอบสิทธิ์

เมื่อนักพัฒนาเริ่มต้นใช้งาน จำเป็นต้องส่งข้อมูลที่จำเป็น โครงสร้างข้อมูลนี้ถูกสร้างโดยเซิร์ฟเวอร์ของนักพัฒนาและส่งกลับไปยังเบราว์เซอร์ ซึ่งใช้สำหรับการเริ่มต้น MTpush ที่นักพัฒนาอนุญาตให้เบราว์เซอร์ทำงาน นักพัฒนาต้องมั่นใจว่าผู้ใช้ทั้งหมดที่สามารถเรียกใช้เพื่อรับข้อมูลนี้เป็นผู้ใช้ที่ถูกต้อง

เริ่มต้นโครงสร้างข้อมูล

interface MTInitInfo { website_push_id: string; code: number; master_secret: string; passwd: string; pull: number; regid: string; sess: string; tagalias: number; uid: number; vapid_pubkey: string; } type dataType = { code: number, content: string, message: string, }; interface InitType { appkey: string; //appkey ของแอปพลิเคชันที่นักพัฒนาลงทะเบียนบนแพลตฟอร์ม URORA จำเป็นต้องระบุ user_str: string; //ตัวระบุเฉพาะสำหรับผู้ใช้ จำเป็นต้องระบุ swUrl?: string; //ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js" debugMode?: boolean; //ค่าเริ่มต้น false webSocketUrl?: string; //หากไม่ได้ระบุ จะใช้ baseUrl fail?: (data: dataType | undefined) => void; //Callback สำหรับการเริ่มต้นล้มเหลว success?: (data: dataType | undefined) => void; //Callback สำหรับการเริ่มต้นสำเร็จ webPushcallback?: def; canGetInfo?: (d: MTInitInfo) => void; custom?: (Callback: () => void) => void; //Callback สำหรับการพร้อมใช้งานของการแจ้งเตือนแบบกำหนดเอง เรียก Callback หลังจากดำเนินการเพื่อใช้ maCompletion?: (code: number, msg: string) => void; //Callback สำหรับการเสร็จสิ้นการเริ่มต้น ma-sdk /** * ลิงก์เปลี่ยนเส้นทางเมื่อคลิกที่การแจ้งเตือน ลำดับความสำคัญ: URL ที่ตั้งค่าเมื่อส่งการแจ้งเตือน -> InitType.openUrl -> โดเมนของหน้าที่รวม * สำหรับเบราว์เซอร์ Safari ข้อความที่ส่งผ่านช่องทางระบบต้องการการจัดการเพิ่มเติม: ตั้งค่า window.MTpushInterfaceTempData = { openUrl: 'https://example.com' } ก่อนโหลด SDK */ openUrl?: string; /** * การเข้ารหัส swUrl หรือไม่ * กรณีการใช้งาน: * หาก swUrl มีอักขระพิเศษเช่น @ และเซิร์ฟเวอร์จำกัดการเข้าถึงทรัพยากร URL นี้ อาจทำให้การลงทะเบียน Service Worker ล้มเหลว; * จำเป็นต้องมีกลไกในการลงทะเบียน Service Worker ใหม่ และ swUrl ควรถูกเข้ารหัสระหว่างการลองใหม่ */ encodeSwUrl?: boolean; }
              
              interface MTInitInfo {
  website_push_id: string;
  code: number;
  master_secret: string;
  passwd: string;
  pull: number;
  regid: string;
  sess: string;
  tagalias: number;
  uid: number;
  vapid_pubkey: string;
}

type dataType = {
  code: number,
  content: string,
  message: string,
};

interface InitType {
  appkey: string; //appkey ของแอปพลิเคชันที่นักพัฒนาลงทะเบียนบนแพลตฟอร์ม URORA จำเป็นต้องระบุ
  user_str: string; //ตัวระบุเฉพาะสำหรับผู้ใช้ จำเป็นต้องระบุ
  swUrl?: string; //ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js"
  debugMode?: boolean; //ค่าเริ่มต้น false
  webSocketUrl?: string; //หากไม่ได้ระบุ จะใช้ baseUrl
  fail?: (data: dataType | undefined) => void; //Callback สำหรับการเริ่มต้นล้มเหลว
  success?: (data: dataType | undefined) => void; //Callback สำหรับการเริ่มต้นสำเร็จ
  webPushcallback?: def;
  canGetInfo?: (d: MTInitInfo) => void;
  custom?: (Callback: () => void) => void; //Callback สำหรับการพร้อมใช้งานของการแจ้งเตือนแบบกำหนดเอง เรียก Callback หลังจากดำเนินการเพื่อใช้
  maCompletion?: (code: number, msg: string) => void; //Callback สำหรับการเสร็จสิ้นการเริ่มต้น ma-sdk
  /**
   * ลิงก์เปลี่ยนเส้นทางเมื่อคลิกที่การแจ้งเตือน ลำดับความสำคัญ: URL ที่ตั้งค่าเมื่อส่งการแจ้งเตือน -> InitType.openUrl -> โดเมนของหน้าที่รวม
   * สำหรับเบราว์เซอร์ Safari ข้อความที่ส่งผ่านช่องทางระบบต้องการการจัดการเพิ่มเติม: ตั้งค่า window.MTpushInterfaceTempData = { openUrl: 'https://example.com' } ก่อนโหลด SDK
   */
  openUrl?: string;
  /**
   * การเข้ารหัส swUrl หรือไม่
   * กรณีการใช้งาน:
   *   หาก swUrl มีอักขระพิเศษเช่น @ และเซิร์ฟเวอร์จำกัดการเข้าถึงทรัพยากร URL นี้ อาจทำให้การลงทะเบียน Service Worker ล้มเหลว;
   *   จำเป็นต้องมีกลไกในการลงทะเบียน Service Worker ใหม่ และ swUrl ควรถูกเข้ารหัสระหว่างการลองใหม่
  */
  encodeSwUrl?: boolean;
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

สามารถลงทะเบียน service worker ได้เพียงหนึ่งตัวภายในขอบเขตเดียวกัน หากการเริ่มต้นสำเร็จแต่รายงานข้อผิดพลาดเช่น "Failed to execute 'subscribe' on 'PushManager': Subscription failed - no active Service Worker" โปรดตรวจสอบความขัดแย้งกับ service worker อื่นๆ อาจจำเป็นต้องรวม service worker หรือแก้ไขขอบเขตของ service worker

การเริ่มต้น SDK

คำอธิบายอินเทอร์เฟซ

อินเทอร์เฟซสำหรับเริ่มต้น

window.MTpushInterface.init(Object:InitType)
              
              window.MTpushInterface.init(Object:InitType)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

คำอธิบายพารามิเตอร์

  • รายละเอียดดูที่ /zh_CN/docs/web-push/sdk/web-sdk-api#Initialize data structure
  • คำอธิบายข้อมูล callback Object:
ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
code number รหัสผลลัพธ์ 0 หมายถึงสำเร็จ อื่นๆ หมายถึงล้มเหลว ดูที่ #error code
message string คำอธิบายผลลัพธ์
content string ข้อความความล้มเหลวเมื่อการลงทะเบียนล้มเหลว 1003

ตัวอย่างการเรียกใช้

MTpushInterface.init({ appkey: "xxx", user_str: "adminDemo", fail(data) { console.log("การสร้าง push ออนไลน์ล้มเหลว", data); }, success(data) { console.log("สร้าง push ออนไลน์สำเร็จ", data); }, webPushcallback(cod, tip) { console.log("รหัสสถานะและคำแนะนำที่ผู้ใช้ได้รับ", code, tip); }, //swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js" canGetInfo(d) { // ณ จุดนี้สามารถรับ RegId หรือรับข้อมูลทั้งหมดใน d console.log("รับ RegId", MTpushInterface.getRegistrationID(), d); // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" }); }, custom: (reqPermission) => { // เมื่อใช้การกำหนดค่าการแจ้งเตือนแบบกำหนดเอง ต้องเรียก reqPermission เพื่อขออนุญาตและกำหนดค่าสิทธิ์ รับฟังก์ชันการขออนุญาตใน callback แบบกำหนดเองและเรียก reqPermission โดยตรงเมื่อถึงเวลาที่เหมาะสมเพื่อขอสิทธิ์การแจ้งเตือน document.getElementById("xx")?.addEventListener("click", reqPermission); }, });
              
              MTpushInterface.init({
   appkey: "xxx",
   user_str: "adminDemo",
   fail(data) {
     console.log("การสร้าง push ออนไลน์ล้มเหลว", data);
   },
   success(data) {
     console.log("สร้าง push ออนไลน์สำเร็จ", data);
   },
   webPushcallback(cod, tip) {
     console.log("รหัสสถานะและคำแนะนำที่ผู้ใช้ได้รับ", code, tip);
   },
   //swUrl?: string; // ค่าเริ่มต้น "/sw.min." + sdkEnv.version + ".js"
   canGetInfo(d) {
     // ณ จุดนี้สามารถรับ RegId หรือรับข้อมูลทั้งหมดใน d
     console.log("รับ RegId", MTpushInterface.getRegistrationID(), d);
     // MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "swefgwwefwfwfwf" });
   },
   custom: (reqPermission) => {
    // เมื่อใช้การกำหนดค่าการแจ้งเตือนแบบกำหนดเอง ต้องเรียก reqPermission เพื่อขออนุญาตและกำหนดค่าสิทธิ์ รับฟังก์ชันการขออนุญาตใน callback แบบกำหนดเองและเรียก reqPermission โดยตรงเมื่อถึงเวลาที่เหมาะสมเพื่อขอสิทธิ์การแจ้งเตือน
    document.getElementById("xx")?.addEventListener("click", reqPermission);  },
});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

รับ RegistrationID

คำอธิบายอินเทอร์เฟซ

เรียก API นี้เพื่อรับ RegistrationID ที่ตรงกับบัญชีปัจจุบัน ค่าที่ตรงกันจะถูกส่งกลับเมื่อการลงทะเบียนลายเซ็นเริ่มต้นสำเร็จเท่านั้น มิฉะนั้นจะส่งกลับสตริงว่าง ต้องเรียกใช้เมธอดนี้หลังจากเรียกใช้ callback canGetInfo แล้ว

window.MTpushInterface.getRegistrationID()
              
              window.MTpushInterface.getRegistrationID()

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตัวอย่างการเรียกใช้

var rid = window.MTpushInterface.getRegistrationID();
              
              var rid = window.MTpushInterface.getRegistrationID();

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

หยุด push

เรียก API นี้เพื่อตัดการเชื่อมต่อแบบถาวรกับแบ็กเอนด์และหยุดรับข้อความ push

window.MTpushInterface.mtPush.stopPush()
              
              window.MTpushInterface.mtPush.stopPush()

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตรวจสอบข้อความ push

คำอธิบายอินเทอร์เฟซ

แนะนำให้เรียกตัวตรวจสอบข้อความก่อนเริ่มต้น

window.MTpushInterface.onMsgReceive(fn)
              
              window.MTpushInterface.onMsgReceive(fn)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

คำอธิบายพารามิเตอร์

ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
fn function ฟังก์ชันการรับและประมวลผลข้อความ

ตัวอย่างการเรียกใช้

window.MTpushInterface.onMsgReceive(function (res) { if(res.type===0){ // res.data.messages[] // res.data.messages[].msg_id // res.data.messages[].title // res.data.messages[].content // res.data.messages[].extras }else{ // res.data.title } });
              
              window.MTpushInterface.onMsgReceive(function (res) {
   if(res.type===0){
    // res.data.messages[]
    // res.data.messages[].msg_id
    // res.data.messages[].title
    // res.data.messages[].content
    // res.data.messages[].extras
   }else{
    // res.data.title
   }

});

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ข้อมูลที่ส่งกลับ

ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
type number
  • 0: ข้อความช่องทาง Engagelab
  • 1: ข้อความช่องทางระบบ
  • data Object เนื้อหาข้อความ

    อาร์เรย์ข้อความช่องทาง Engagelab (messages)

    ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
    msg_id string ID ข้อความ
    title string หัวข้อข้อความ
    content string เนื้อหาข้อความ
    extras Object ฟิลด์เพิ่มเติมของข้อความ

    ข้อมูลข้อความช่องทางระบบ

    รองรับอินเทอร์เฟซ NotificationOptions ของ w3c ดูรายละเอียดที่ https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications/NotificationOptions

    ตรวจสอบสถานะบริการ push

    window.MTpushInterface.getPushAuthority()
                  
                  window.MTpushInterface.getPushAuthority()
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    โครงสร้างข้อมูลที่ส่งกลับมีดังนี้:

    { mtPush: { code:1, //1 สำเร็จ, -1 กำลังเริ่มต้น, 0 ล้มเหลว msg:'success' }, webPush: { code:1, // 0 webpush ไม่พร้อมใช้งาน (เบราว์เซอร์ไม่รองรับ) 1 พร้อมใช้งาน 2 สิทธิ์ถูกปิดใช้งาน 3 สิทธิ์ยังไม่ได้รับการยืนยัน msg:'success' } }
                  
                  {
       mtPush: {
         code:1, //1 สำเร็จ, -1 กำลังเริ่มต้น, 0 ล้มเหลว
         msg:'success'
       },
       webPush: {
         code:1, // 0 webpush ไม่พร้อมใช้งาน (เบราว์เซอร์ไม่รองรับ) 1 พร้อมใช้งาน 2 สิทธิ์ถูกปิดใช้งาน 3 สิทธิ์ยังไม่ได้รับการยืนยัน
         msg:'success'
       }
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
    • รหัสข้อผิดพลาดสำหรับวัตถุ webPush:
    รหัส ข้อความ หมายเหตุ
    0 เบราว์เซอร์ไม่รองรับ Notifications API เบราว์เซอร์ไม่รองรับ Notifications API
    1 การอนุญาตการแจ้งเตือนพร้อมใช้งาน การสมัครรับข้อความสำเร็จ การอนุญาตการแจ้งเตือนพร้อมใช้งาน การสมัครรับข้อความสำเร็จ
    2 การอนุญาตการแจ้งเตือนถูกปิดใช้งาน การสมัครรับข้อความล้มเหลว การอนุญาตการแจ้งเตือนถูกปิดใช้งาน การสมัครรับข้อความล้มเหลว
    3 การอนุญาตการแจ้งเตือนไม่ได้รับการยืนยัน การสมัครรับข้อความยังไม่ได้ดำเนินการ การอนุญาตการแจ้งเตือนไม่ได้รับการยืนยัน การสมัครรับข้อความยังไม่ได้ดำเนินการ
    -1 เบราว์เซอร์ไม่รองรับ Service Worker เบราว์เซอร์ไม่รองรับ Service Worker
    -2 Service Worker ไม่รองรับ HTTP Service Worker ไม่รองรับโปรโตคอล HTTP
    -3 การลงทะเบียน Service Worker ล้มเหลว การลงทะเบียน Service Worker ล้มเหลว
    -4 การอนุญาตการแจ้งเตือนพร้อมใช้งาน แต่การสมัครรับข้อความล้มเหลว การอนุญาตการแจ้งเตือนพร้อมใช้งาน แต่การสมัครรับข้อความล้มเหลว
    -5 การสมัครรับข้อความถูกยกเลิก การสมัครรับข้อความถูกยกเลิก

    รับสิทธิ์การแจ้งเตือนของเบราว์เซอร์

    window.MTpushInterface.getWebPermission()
                  
                  window.MTpushInterface.getWebPermission()
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์ที่ส่งกลับ

    • granted : พร้อมใช้งาน
    • denied : ปิดใช้งาน
    • default: สิทธิ์ยังไม่ได้รับการยืนยัน

    รายงานข้อมูลข้อความที่กำหนดเอง

    หากต้องการทำสถิติข้อมูลของข้อความที่กำหนดเอง โปรดใช้อินเทอร์เฟซการรายงานแบบกำหนดเองเพื่อรายงานข้อมูล

    window.MTpushInterface.customClickReport('msg_id');//msg_id คือ msg_id ของข้อความที่กำหนดเอง
                  
                  
    window.MTpushInterface.customClickReport('msg_id');//msg_id คือ msg_id ของข้อความที่กำหนดเอง
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    การตรวจสอบการตัดการเชื่อมต่อ

    คำอธิบายอินเทอร์เฟซ

    หากเกิดการตัดการเชื่อมต่อหลังจากการเริ่มต้นสำเร็จ SDK จะพยายามเชื่อมต่อและลงชื่อใหม่โดยอัตโนมัติ แนะนำให้เรียกตัวตรวจสอบเหตุการณ์นี้ก่อนเริ่มต้น และเรียกการเริ่มต้นอีกครั้งหลังจากได้รับเหตุการณ์นี้

    window.MTpushInterface.mtPush.onDisconnect(fn)
                  
                  window.MTpushInterface.mtPush.onDisconnect(fn)
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.mtPush.onDisconnect(function () { });
                  
                  window.MTpushInterface.mtPush.onDisconnect(function () {
    });
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ยกเลิกการสมัครรับการแจ้งเตือนของเบราว์เซอร์

    ยกเลิกการสมัครรับการแจ้งเตือน สามารถใช้เมธอดนี้เมื่อไม่ต้องการรับการแจ้งเตือนเมื่อออกจากระบบบัญชีที่มีระดับความเป็นส่วนตัวสูง

    MTpushInterface. unSubscribe();
                  
                  MTpushInterface. unSubscribe();
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    ตั้งค่า TagsAlias

    window.MTpushInterface.setTagsAlias({})

    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
                  
                  
    MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    ชื่อพารามิเตอร์ ประเภทพารามิเตอร์ คำอธิบายพารามิเตอร์
    tags string[] จำเป็นต้องระบุ ความยาวสูงสุดของอาร์เรย์คือ 1000 แต่ละองค์ประกอบมีได้สูงสุด 40 ตัวอักษร
    alias string จำเป็นต้องระบุ สูงสุด 40 ตัวอักษร

    คำอธิบายอินเทอร์เฟซ

    นักพัฒนาสามารถตั้งค่าและลบแท็กภายใต้นามแฝงที่ระบุผ่านอินเทอร์เฟซนี้ อินเทอร์เฟซนี้ใช้ตรรกะการเขียนทับ หากตั้งค่าการแจ้งเตือนเป็นสตริงว่าง สามารถลบแท็กที่มีอยู่ได้

    การแสดงคำแนะนำหมวดหมู่หลายครั้ง

    window.MTpushInterface.promptPushCategories();
                  
                  window.MTpushInterface.promptPushCategories();
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายอินเทอร์เฟซ

    หลังจากผู้ใช้สมัครรับการแจ้งเตือน push แล้ว นักพัฒนาสามารถแสดงคำแนะนำหมวดหมู่หลายครั้งตามต้องการ ต้องเรียกใช้หลังจากเริ่มต้น SDK แล้ว

    การเรียกกลับการแสดงข้อความพุช

    คำอธิบายอินเทอร์เฟซ

    แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.onMsgDisplay((msgData) => {});
                  
                  window.MTpushInterface.onMsgDisplay((msgData) => {});
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความแจ้งเตือน msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; type: string; // 0: ข้อความช่องทาง Engagelab 1: ข้อความช่องทางระบบ }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      type: string; // 0: ข้อความช่องทาง Engagelab   1: ข้อความช่องทางระบบ
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      type: string;
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    หมายเหตุ:

    1. ในโหมดแก้ไข HTML สำหรับข้อความในแอป พารามิเตอร์การเรียกกลับ title และ content จะเป็นสตริงว่าง

    2. ข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ Safari ไม่สามารถรับการเรียกกลับการแสดงผลได้

    การเรียกกลับการคลิกข้อความพุช

    คำอธิบายอินเทอร์เฟซ

    แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน

    ตัวอย่างการเรียกใช้

    window.MTpushInterface.onMsgClick((msgData) => {});
                  
                  window.MTpushInterface.onMsgClick((msgData) => {});
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความแจ้งเตือน msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; engagelab_appkey: string; engagelab_passwd: string; engagelab_uid: string; engagelab_url: string; position: string; // ตำแหน่งการคลิก, 'msgBody' | Button ID type: string; // 0: ข้อความช่องทาง Engagelab 1: ข้อความช่องทางระบบ }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      engagelab_appkey: string;
      engagelab_passwd: string;
      engagelab_uid: string;
      engagelab_url: string;
      position: string; // ตำแหน่งการคลิก, 'msgBody' | Button ID
      type: string; // 0: ข้อความช่องทาง Engagelab   1: ข้อความช่องทางระบบ
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData:

    { title: string; content: string; msg_id: string; ntf_or_msg: number; position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn'; type: string; }
                  
                  {
      title: string;
      content: string;
      msg_id: string;
      ntf_or_msg: number;
      position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
      type: string;
    }
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย

    หมายเหตุ:

    1. ในโหมดแก้ไข HTML สำหรับข้อความในแอป ค่าของ position จะถูกกำหนดโดยนักพัฒนา และพารามิเตอร์การเรียกกลับ title และ content จะเป็นสตริงว่าง
    2. ข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ Safari ไม่สามารถรับการเรียกกลับการคลิกได้

    รหัสข้อผิดพลาด

    code message หมายเหตุ
    0 success การเรียกใช้สำเร็จ
    1000 unknown error ข้อผิดพลาดที่ไม่รู้จัก
    1001 initing , please try again later กำลังเริ่มต้น โปรดลองอีกครั้งในภายหลัง
    1002 invalid config ข้อผิดพลาดในการกำหนดค่าเริ่มต้น
    1003 init failed การเริ่มต้นล้มเหลว โปรดดูรายละเอียดที่คอนโซล
    1004 init timeout การเริ่มต้นเกินเวลาที่กำหนด
    1005 network error ข้อผิดพลาดเครือข่าย ไม่มีเครือข่ายหรือไม่สามารถเชื่อมต่อกับ websocket
    1006 ไม่สามารถรับ baseUrl และ reportUrl ได้ คำขอ API get-webaddr ล้มเหลว โปรดดูรายละเอียดในฟิลด์เนื้อหาใน callback
    1007 การตรวจสอบสิทธิ์ล้มเหลว การตรวจสอบสิทธิ์ล้มเหลว โปรดดูรายละเอียดในฟิลด์เนื้อหาใน callback
    icon
    ติดต่อฝ่ายขาย