Ringkasan tentang definisi notifikasi push, alasan Anda menggunakannya, dan cara kerjanya.
Apa itu notifikasi push?
Pesan push memungkinkan Anda menyampaikan informasi kepada pengguna bahkan saat mereka tidak menggunakan situs Anda. Metode ini disebut push pesan karena Anda bisa "push" informasi kepada pengguna Anda bahkan ketika mereka tidak aktif. Bandingkan Push teknologi dengan Pull teknologi untuk memahami hal ini. konsep lebih lanjut.
Notifikasi menampilkan potongan-potongan kecil informasi kepada pengguna. Situs dapat menggunakan notifikasi untuk memberi tahu pengguna tentang peristiwa atau tindakan penting yang mendesak yang perlu diambil pengguna. Tampilan dan nuansa notifikasi berbeda-beda di setiap platform:
Pesan dan notifikasi push adalah dua teknologi yang terpisah tetapi saling melengkapi. {i>Push<i} adalah teknologi untuk mengirim pesan dari server Anda kepada pengguna bahkan ketika mereka tidak aktif menggunakan {i>website<i} Anda. Notifikasi adalah teknologi untuk yang menampilkan informasi yang dikirim di perangkat pengguna. Sangat mungkin untuk menggunakan notifikasi tanpa pesan push. Suatu hari nanti mungkin saja untuk menggunakan pesan push tanpa notifikasi yang ditampilkan kepada pengguna (push senyap) tetapi browser melarang hal itu. Dalam praktiknya mereka biasanya digunakan bersama. Pengguna non-teknis mungkin tidak akan memahami perbedaan antara {i>push<i} pesan dan notifikasi. Dalam koleksi ini saat yang kami maksud adalah notifikasi push yang kami maksud adalah kombinasi pengiriman pesan diikuti dengan menampilkannya sebagai notifikasi. Saat kami mengucapkan pesan push kita maksudnya mendorong teknologi itu sendiri. Dan saat kami mengucapkan notifikasi kami mengacu pada teknologi notifikasi itu sendiri.
Mengapa menggunakan notifikasi push?
- Bagi pengguna, notifikasi push adalah cara untuk menerima secara tepat waktu, relevan, yang akurat dan akurat.
- Bagi Anda (pemilik situs), notifikasi push adalah cara untuk meningkatkan engagement.
Bagaimana cara kerja notifikasi push?
Pada tingkat tinggi, langkah-langkah utama untuk menerapkan notifikasi push adalah:
- Menambahkan logika klien untuk meminta izin kepada pengguna untuk mengirim notifikasi push, dan kemudian mengirim informasi pengenal klien ke server Anda untuk disimpan dalam {i>database<i}.
- Menambahkan logika server untuk mengirim pesan ke perangkat klien.
- Menambahkan logika klien untuk menerima pesan yang telah dikirim ke perangkat dan menampilkannya sebagai notifikasi.
Bagian selanjutnya dari halaman ini akan menjelaskan langkah-langkah ini secara lebih detail.
Mendapatkan izin untuk mengirim notifikasi push
Pertama, situs Anda perlu mendapatkan izin pengguna untuk mengirim notifikasi push.
Pemicu ini harus dipicu oleh gestur pengguna, seperti mengklik tombol Yes
di samping perintah Do you want to receive push notifications?
. Setelah konfirmasi itu,
panggil Notification.requestPermission()
. Sistem operasi atau
di perangkat pengguna, mungkin akan menyajikan
semacam UI untuk mengkonfirmasi secara resmi bahwa
pengguna ingin memilih untuk menerima notifikasi push. UI ini bervariasi di berbagai platform.
Membuat klien berlangganan notifikasi push
Setelah Anda mendapatkan izin, situs web Anda harus memulai proses membuat pengguna berlangganan notifikasi push. Hal ini dilakukan melalui JavaScript, menggunakan Push API. Anda harus memberikan kunci autentikasi publik selama proses berlangganan, yang akan Anda pelajari lebih lanjut nanti. Sesudah Anda memulai proses langganan, browser akan membuat permintaan jaringan ke layanan web yang dikenal sebagai layanan {i>push<i}, yang juga akan Anda pelajari lebih lanjut nanti.
Mengasumsikan bahwa langganan berhasil, browser mengembalikan
PushSubscription
. Anda harus menyimpan data ini dalam jangka panjang.
Biasanya ini dilakukan dengan mengirimkan
informasi ke server yang Anda kontrol,
dan kemudian meminta server
menyimpannya dalam database.
Mengirim pesan push
Server Anda tidak benar-benar mengirim pesan {i>push<i} langsung ke klien. J layanan push dapat melakukannya. Layanan push adalah layanan web yang dikendalikan oleh vendor browser pengguna. Saat Anda ingin mengirim notifikasi push ke klien yang diperlukan untuk membuat permintaan layanan web ke layanan push. Layanan web yang meminta yang yang Anda kirim ke layanan push dikenal sebagai permintaan protokol web push. Tujuan permintaan protokol web push harus mencakup:
- Data yang akan disertakan dalam pesan.
- Klien yang akan dikirimi pesan.
- Petunjuk tentang cara layanan push menyampaikan pesan. Sebagai contoh, Anda dapat menentukan bahwa layanan push harus berhenti mencoba mengirim pesan setelah 10 menit.
Biasanya Anda membuat permintaan protokol {i>web push<i} melalui server yang Anda kontrol. Tentu saja, server Anda tidak perlu membuat permintaan layanan web mentah itu sendiri. Ada {i>library<i} yang bisa menanganinya untuk Anda, seperti web-push-libs. Tetapi mekanisme yang mendasarinya adalah membuat permintaan layanan web melalui HTTP.
Layanan push menerima permintaan Anda, mengautentikasinya, dan merutekan push tersebut ke klien yang sesuai. Jika browser klien sedang {i>offline<i}, {i>push<i} mengantrekan pesan {i>push<i} hingga {i>browser<i} online.
Setiap browser menggunakan layanan {i>push<i} apa pun yang diinginkan. Anda sebagai developer situs tidak memiliki kendali atas hal itu. Ini bukan masalah karena protokol web push distandarisasi. Dengan kata lain, Anda tidak perlu memikirkan layanan {i>push<i} mana yang dimiliki vendor {i>browser<i} gunakan. Anda hanya perlu memastikan bahwa permintaan protokol web push Anda mengikuti spesifikasi. Di antara hal-hal lainnya, spesifikasi menyatakan bahwa permintaan harus menyertakan header tertentu dan data harus dikirim sebagai aliran byte.
Namun, Anda perlu memastikan bahwa Anda mengirimkan protokol web push
ke layanan push yang benar. Data PushSubscription
yang
yang dikembalikan oleh browser kepada Anda selama proses langganan,
tidak akurat atau tidak sesuai. Objek PushSubscription
akan terlihat seperti ini:
{
"endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
"expirationTime": null,
"keys": {
"p256dh": "BGyyVt9FFV…",
"auth": "R9sidzkcdf…"
}
}
Domain endpoint
pada dasarnya adalah layanan push. Jalur dari
endpoint
adalah informasi ID klien yang membantu layanan push menentukan
ke klien mana pesan akan
dikirim dengan tepat.
keys
digunakan untuk enkripsi, yang akan dijelaskan selanjutnya.
Mengenkripsi pesan push
Data yang Anda kirim ke layanan push harus dienkripsi. Hal ini mencegah
layanan {i>push<i} agar tidak dapat melihat
data yang Anda kirim ke klien.
Ingat bahwa vendor browser memutuskan layanan {i>push<i} apa yang akan digunakan, dan itu
layanan push secara teoritis bisa
menjadi tidak aman atau tidak aman. Server Anda harus menggunakan
keys
yang disediakan di PushSubscription
untuk mengenkripsi protokol web pushnya
permintaan.
Menandatangani permintaan protokol push web
Layanan push menyediakan cara untuk mencegah orang lain mengirim pesan ke pelanggan. Secara teknis Anda tidak harus melakukan ini, tetapi implementasinya yang paling mudah di Chrome memerlukannya. Setelan ini opsional di Firefox. Browser lain mungkin memerlukannya di masa mendatang.
Alur kerja ini melibatkan kunci pribadi dan kunci publik yang unik untuk aplikasi. Proses otentikasi kurang lebih bekerja seperti ini:
- Anda membuat kunci pribadi dan publik sebagai tugas satu kali. Kombinasi dari kunci pribadi dan publik dikenal sebagai kunci server aplikasi. Anda mungkin juga melihatnya bernama VAPID . VAPID adalah spesifikasi yang menentukan proses otentikasi.
- Saat Anda membuat klien berlangganan
notifikasi push dari kode JavaScript Anda,
Anda memberikan kunci publik Anda. Saat layanan push menghasilkan
endpoint
untuk perangkat, maka mengaitkan kunci publik yang diberikan denganendpoint
. - Saat Anda mengirim permintaan protokol web push, Anda menandatangani beberapa informasi JSON dengan kunci pribadi Anda.
- Ketika menerima permintaan protokol {i>web push<i} Anda, layanan {i>push<i} akan menggunakan kunci publik untuk mengotentikasi informasi yang ditandatangani. Jika tanda tangan valid layanan {i>push<i} tahu bahwa permintaan berasal dari server dengan kunci pribadi yang cocok.
Menyesuaikan pengiriman pesan push
Spesifikasi permintaan protokol {i>web push<i} juga menentukan parameter yang memungkinkan Anda menyesuaikan bagaimana layanan {i>push<i} mencoba mengirim pesan {i>push<i} ke klien. Misalnya, Anda dapat menyesuaikan:
- Time-To-Live (TTL) pesan, yang menentukan berapa lama layanan push harus mencoba mengirimkan pesan.
- Urgensi pesan, yang berguna jika layanan push mempertahankan daya tahan baterai klien dengan hanya mengirimkan pesan berprioritas tinggi.
- Topik pesan, yang menggantikan pesan tertunda dari topik yang sama dengan pesan terbaru.
Menerima dan menampilkan pesan yang dikirim sebagai notifikasi
Setelah Anda mengirim permintaan protokol {i>web push<i} ke layanan {i>push<i}, layanan {i>push<i} menyimpan permintaan Anda diantrekan hingga salah satu peristiwa berikut terjadi:
- Klien online dan layanan {i>push<i} mengirimkan pesan {i>push<i}.
- Pesan akan kedaluwarsa.
Ketika menerima pesan yang dikirim, browser klien akan mendekripsi pesan push tersebut
data dan mengirim peristiwa push
ke layanan Anda
pekerja. Pekerja layanan adalah
pada dasarnya kode JavaScript yang dapat berjalan
di latar belakang, bahkan saat situs web Anda
tidak terbuka atau browser ditutup. Dalam peristiwa push
pekerja layanan Anda
Anda memanggil ServiceWorkerRegistration.showNotification()
untuk menampilkan informasi
sebagai notifikasi.
Langkah berikutnya
- Ringkasan Notifikasi Push Web
- Cara Kerja Push
- Berlangganan Pengguna
- UX Izin
- Mengirim Pesan dengan Library Web Push
- Protokol Push Web
- Menangani Peristiwa Push
- Menampilkan Notifikasi
- Perilaku Notifikasi
- Pola Notifikasi Umum
- FAQ Notifikasi Push
- Masalah Umum dan Melaporkan Bug