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; // ID ผู้ใช้ที่ไม่ซ้ำกัน จำเป็นต้องระบุ
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 หลังการดำเนินการเสร็จสิ้น
}
สามารถลงทะเบียน 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)
คำอธิบายพารามิเตอร์
- รายละเอียดดูที่ /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); },
});
รับ RegistrationID
คำอธิบายอินเทอร์เฟซ
เรียก API นี้เพื่อรับ RegistrationID ที่ตรงกับบัญชีปัจจุบัน ค่าที่ตรงกันจะถูกส่งกลับเมื่อการลงทะเบียนลายเซ็นเริ่มต้นสำเร็จเท่านั้น มิฉะนั้นจะส่งกลับสตริงว่าง ต้องเรียกใช้เมธอดนี้หลังจากเรียกใช้ callback canGetInfo แล้ว
window.MTpushInterface.getRegistrationID()
ตัวอย่างการเรียกใช้
var rid = window.MTpushInterface.getRegistrationID();
หยุด push
เรียก API นี้เพื่อตัดการเชื่อมต่อแบบถาวรกับแบ็กเอนด์และหยุดรับข้อความ push
window.MTpushInterface.mtPush.stopPush()
การตรวจสอบข้อความ push
คำอธิบายอินเทอร์เฟซ
แนะนำให้เรียกตัวตรวจสอบข้อความก่อนเริ่มต้น
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
}
});
ข้อมูลที่ส่งกลับ
ชื่อพารามิเตอร์ | ประเภทพารามิเตอร์ | คำอธิบายพารามิเตอร์ |
---|---|---|
type | number | |
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()
โครงสร้างข้อมูลที่ส่งกลับมีดังนี้:
{
mtPush: {
code:1, //1 สำเร็จ, -1 กำลังเริ่มต้น, 0 ล้มเหลว
msg:'success'
},
webPush: {
code:1, // 0 webpush ไม่พร้อมใช้งาน (เบราว์เซอร์ไม่รองรับ) 1 พร้อมใช้งาน 2 สิทธิ์ถูกปิดใช้งาน 3 สิทธิ์ยังไม่ได้รับการยืนยัน
msg:'success'
}
}
รับสิทธิ์การแจ้งเตือนของเบราว์เซอร์
window.MTpushInterface.getWebPermission()
คำอธิบายพารามิเตอร์ที่ส่งกลับ
- granted : พร้อมใช้งาน
- denied : ปิดใช้งาน
- default: สิทธิ์ยังไม่ได้รับการยืนยัน
รายงานข้อมูลข้อความที่กำหนดเอง
หากต้องการทำสถิติข้อมูลของข้อความที่กำหนดเอง โปรดใช้อินเทอร์เฟซการรายงานแบบกำหนดเองเพื่อรายงานข้อมูล
window.MTpushInterface.customClickReport('msg_id');//msg_id คือ msg_id ของข้อความที่กำหนดเอง
การตรวจสอบการตัดการเชื่อมต่อ
คำอธิบายอินเทอร์เฟซ
หากเกิดการตัดการเชื่อมต่อหลังจากการเริ่มต้นสำเร็จ SDK จะพยายามเชื่อมต่อและลงชื่อใหม่โดยอัตโนมัติ แนะนำให้เรียกตัวตรวจสอบเหตุการณ์นี้ก่อนเริ่มต้น และเรียกการเริ่มต้นอีกครั้งหลังจากได้รับเหตุการณ์นี้
window.MTpushInterface.mtPush.onDisconnect(fn)
ตัวอย่างการเรียกใช้
window.MTpushInterface.mtPush.onDisconnect(function () {
});
ยกเลิกการสมัครรับการแจ้งเตือนของเบราว์เซอร์
ยกเลิกการสมัครรับการแจ้งเตือน สามารถใช้เมธอดนี้เมื่อไม่ต้องการรับการแจ้งเตือนเมื่อออกจากระบบบัญชีที่มีระดับความเป็นส่วนตัวสูง
MTpushInterface. unSubscribe();
ตั้งค่า TagsAlias
window.MTpushInterface.setTagsAlias({})
MTpushInterface.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
คำอธิบายพารามิเตอร์
ชื่อพารามิเตอร์ | ประเภทพารามิเตอร์ | คำอธิบายพารามิเตอร์ |
---|---|---|
tags | string[] | จำเป็นต้องระบุ ความยาวสูงสุดของอาร์เรย์คือ 1000 แต่ละองค์ประกอบมีได้สูงสุด 40 ตัวอักษร |
alias | string | จำเป็นต้องระบุ สูงสุด 40 ตัวอักษร |
คำอธิบายอินเทอร์เฟซ
นักพัฒนาสามารถตั้งค่าและลบแท็กภายใต้นามแฝงที่ระบุผ่านอินเทอร์เฟซนี้ อินเทอร์เฟซนี้ใช้ตรรกะการเขียนทับ หากตั้งค่าการแจ้งเตือนเป็นสตริงว่าง สามารถลบแท็กที่มีอยู่ได้
การแสดงคำแนะนำหมวดหมู่หลายครั้ง
window.MTpushInterface.promptPushCategories();
คำอธิบายอินเทอร์เฟซ
หลังจากผู้ใช้สมัครรับการแจ้งเตือน push แล้ว นักพัฒนาสามารถแสดงคำแนะนำหมวดหมู่หลายครั้งตามต้องการ ต้องเรียกใช้หลังจากเริ่มต้น SDK แล้ว
การเรียกกลับการแสดงข้อความพุช
คำอธิบายอินเทอร์เฟซ
แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน
ตัวอย่างการเรียกใช้
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: ข้อความช่องทางระบบ
}
คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData
:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
type: string;
}
หมายเหตุ:
ในโหมดแก้ไข HTML สำหรับข้อความในแอป พารามิเตอร์การเรียกกลับ
title
และcontent
จะเป็นสตริงว่างข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ Safari ไม่สามารถรับการเรียกกลับการแสดงผลได้
การเรียกกลับการคลิกข้อความพุช
คำอธิบายอินเทอร์เฟซ
แนะนำให้เรียกใช้ตัวฟังข้อความก่อนการเริ่มต้นใช้งาน
ตัวอย่างการเรียกใช้
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: ข้อความช่องทางระบบ
}
คำอธิบายพารามิเตอร์การเรียกกลับข้อความในแอป msgData
:
{
title: string;
content: string;
msg_id: string;
ntf_or_msg: number;
position: 'msgBody' | 'mainBtn' | 'subBtn' | 'closeBtn';
type: string;
}
หมายเหตุ:
- ในโหมดแก้ไข HTML สำหรับข้อความในแอป ค่าของ
position
จะถูกกำหนดโดยนักพัฒนา และพารามิเตอร์การเรียกกลับtitle
และcontent
จะเป็นสตริงว่าง- ข้อความที่ส่งผ่านช่องทางระบบในเบราว์เซอร์ 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 |