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
Pengembang dapat mengatur tag dan alias melalui antarmuka ini. Perhatikan bahwa antarmuka ini menggunakan logika penimpaan — mengatur ke string kosong akan menghapus tag dan alias 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 |










