| Platform | SDK |
|---|---|
| Web (React, Vue, Angular, Svelte, dll.) | @notiblast/web |
| Android & iOS (Flutter) | notiblast_sdk |
appId.npx notiblast init menyalin service worker ke folder publik Anda. File ini harus bisa diakses di root situs: https://situs-anda.com/notiblast-sw.js.import { init, promptAndSubscribe, subscribe, identify, unsubscribe, permission } from '@notiblast/web'
// sekali, saat aplikasi dimuat
init({
appId: 'APP_ID_DARI_DASBOR',
firebase: { apiKey: '…', projectId: '…', messagingSenderId: '…', appId: '…' },
vapidKey: 'WEB_PUSH_CERTIFICATE',
externalUserId: user?.id, // biarkan undefined bila belum ada yang login
})
// di balik tombol, jangan saat halaman dimuat
const { outcome } = await promptAndSubscribe()firebase dan vapidKey diambil dari project Firebase Anda: Project settings, General, Your apps, Web app untuk config; Cloud Messaging, Web Push certificates untuk key.| Kapan | Panggil |
|---|---|
Setiap aplikasi dimuat, bila permission() bukan 'default' | subscribe() |
| User login | identify(user.id) |
| User logout | identify(null) |
| User mematikan notifikasi | unsubscribe() |
externalUserId: null melepas ikatan user. Untuk pengunjung yang belum login, biarkan undefined.npm update. Tambahkan "prebuild": "notiblast check" supaya build gagal bila salinannya tertinggal.await isSupported().notiblast_sdk sesuai petunjuk di halaman paketnya. Lalu siapkan Firebase di project Anda:google-services.json di android/app/, plugin com.google.gms.google-services, minSdk 21 ke atas.GoogleService-Info.plist ditambahkan lewat Xcode, capability Push Notifications dan Background Modes (Remote notifications), serta APNs key (.p8) diunggah ke Firebase.| Kapan | Panggil |
|---|---|
| Setiap aplikasi dibuka, user sudah login | requestPermission() lalu login(userId) |
| User logout | logout() |
| User mematikan notifikasi | Notifications.optOut() |
| User menyalakan lagi notifikasi | Notifications.optIn() |
| Berlangganan topic | Notifications.subscribeTopic('promo') |
login() setiap aplikasi dibuka. Tanpanya, notifikasi untuk user itu tidak ditangani pada sesi tersebut.logout() melepas ikatan user, tetapi perangkat tetap menerima kiriman ke semua perangkat. Untuk menghentikan semuanya, panggil juga optOut().optOut() lagi setelah login() setiap aplikasi dibuka.addForegroundListener. Panggil notification.showNotification() untuk menampilkannya.identify() (web) atau login() (Flutter) adalah external_id. Nilai ini dipakai server Anda saat mengirim ke user tertentu dan saat mengisi List Penerima.