API Ekstensi Chrome Web SDK
Inisialisasi SDK
Deskripsi Antarmuka
Untuk mencegah banyaknya pengguna tidak valid, disarankan menggunakan user_str yang unik dan konsisten saat inisialisasi. Anda dapat menghasilkan user_str berdasarkan sidik jari browser.
Contoh Pemanggilan
if (window.MTpushInterfaceExtension) {
window.MTpushInterfaceExtension.initSdk({
appkey: '',
user_str: '',
});
}
Deskripsi Parameter
interface InitType {
appkey: string; // Appkey aplikasi yang didaftarkan developer di platform EngageLab. Wajib diisi.
user_str: string; // Pengidentifikasi pengguna yang unik. Wajib diisi.
}
Mendapatkan Hasil
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
// Inisialisasi SDK berhasil
case 'MTPUSH_INIT_SDK_SUCCESS':
console.log(message.data);
break;
// Inisialisasi SDK gagal
case 'MTPUSH_INIT_SDK_FAIL':
console.log(message.data);
break;
}
});
Struktur message.data adalah sebagai berikut:
interface MessageData {
code: number; // Kode status. 0 berarti sukses, selain itu gagal. Lihat kode error.
message: string; // Deskripsi hasil.
content: string; // Mengembalikan informasi kegagalan jika pendaftaran gagal dengan kode error 1003.
}
Jika integrasi ekstensi gagal karena masa percobaan gratis atau paket berbayar aplikasi telah habis, proses inisialisasi akan dicoba ulang ketika halaman baru dibuka atau halaman yang ada di-refresh setelah 4 jam.
Mendapatkan RegistrationID
Deskripsi Antarmuka
Tidak perlu memanggil API secara manual untuk mendapatkan regid. Setelah SDK berhasil diinisialisasi, Anda dapat memperoleh regid dari informasi yang dikembalikan oleh event MTPUSH_GET_MT_INIT_INFO.
Contoh Pemanggilan
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_MT_INIT_INFO':
console.log(message.data.regid);
break;
}
});
Hasil Pengembalian
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;
}
Menghentikan Notifikasi Push
Deskripsi Antarmuka
Panggil API ini untuk memutus koneksi push yang terhubung secara terus-menerus ke backend dan menghentikan penerimaan pesan push.
Contoh Pemanggilan
window.MTpushInterfaceExtension.stopPush();
Memeriksa Status Layanan Push
Deskripsi Antarmuka
Ambil informasi status layanan push.
Contoh Pemanggilan
// Panggil setelah SDK berhasil diinisialisasi
window.MTpushInterfaceExtension.getPushAuthority();
// Dengarkan pesan untuk mendapatkan status layanan push
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_GET_PUSH_AUTHORITY':
console.log('Status layanan push: ', message.data);
break;
}
});
Hasil Pengembalian
{
"mtPush": {
"code": 1, // 1: Sukses, -1: Sedang inisialisasi, 0: Gagal
"msg": "Inisialisasi channel MTpush berhasil!"
},
"webPush": {
"code": 1, // 0: Webpush tidak tersedia (tidak didukung), 1: Tersedia, 2: Tidak tersedia
"msg": "Notifikasi tersedia"
}
}
Mengatur Tag dan Alias
Deskripsi Antarmuka
Developer dapat menggunakan antarmuka ini untuk mengatur dan menghapus tag pada alias tertentu. Antarmuka ini menggunakan logika overwrite. Mengatur tag dengan string kosong akan menghapus tag yang ada.
Contoh Pemanggilan
window.MTpushInterfaceExtension.setTagsAlias({ tags: ["test1", "test2"], alias: "aliass" });
Deskripsi Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
| tags | string[] | Wajib diisi. Maksimal panjang array 1000. Setiap elemen maksimal 40 karakter. |
| alias | string | Wajib diisi. Maksimal 40 karakter. |
Hasil Pengembalian
Dengarkan pesan untuk mendapatkan hasil pengaturan antarmuka:
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_SET_TAGS_ALIAS_SUCCESS':
console.log('Pengaturan berhasil');
break;
case 'MTPUSH_SET_TAGS_ALIAS_FAIL':
console.log('Pengaturan gagal', message.data); // Informasi kegagalan: string[]
break;
}
});
Pelaporan Pesan Kustom
Deskripsi Antarmuka
Jika Anda perlu melaporkan pesan kustom untuk statistik data, gunakan antarmuka pelaporan kustom ini.
Contoh Pemanggilan
window.MTpushInterfaceExtension.customClickReport('msg_id'); // msg_id adalah ID pesan kustom
Callback Tampilan Pesan Push
Deskripsi Antarmuka
Setelah inisialisasi SDK selesai, dengarkan event MTPUSH_MSG_CALLBACK_DISPLAY untuk menerima informasi callback tampilan pesan push.
Contoh Penggunaan
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_DISPLAY':
console.log(message.data);
break;
}
});
Deskripsi Parameter
Penjelasan parameter callback message.data:
{
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: Pesan channel Engagelab 1: Pesan channel sistem
}
Callback Klik Pesan Push
Deskripsi Antarmuka
Setelah inisialisasi SDK selesai, dengarkan event MTPUSH_MSG_CALLBACK_CLICK untuk menerima informasi callback klik pesan push.
Contoh Penggunaan
chrome.runtime.onMessage.addListener((message) => {
switch (message.type) {
case 'MTPUSH_MSG_CALLBACK_CLICK':
console.log(message.data);
break;
}
});
Deskripsi Parameter
{
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; // Posisi klik, 'msgBody' | ID tombol
type: string; // 0: Pesan channel Engagelab 1: Pesan channel sistem
}
Catatan: Pada channel EngageLab, parameter
titledancontentpada callback klik akan mengembalikan maksimal 30 karakter.
Kode Error
| Kode | Pesan | Keterangan |
|---|---|---|
| 0 | success | Pemanggilan berhasil |
| 1000 | unknown error | Error tidak diketahui |
| 1001 | initing , please try again later | Sedang inisialisasi, silakan coba lagi nanti |
| 1002 | invalid config | Konfigurasi inisialisasi tidak valid |
| 1003 | init failed | Inisialisasi gagal. Periksa log konsol untuk detail. |
| 1004 | init timeout | Waktu inisialisasi habis |
| 1005 | network error | Error jaringan. Tidak ada jaringan atau tidak dapat terhubung ke WebSocket |










