Menggunakan Notifications API

Ernest Delgado
Ernest Delgado

Pengantar

Notifications API memungkinkan Anda menampilkan notifikasi kepada pengguna untuk peristiwa tertentu, baik secara pasif (email baru, tweet, atau acara kalender) maupun pada interaksi pengguna, terlepas dari tab mana yang memiliki fokus. Ada spesifikasi draf, tetapi saat ini tidak ada dalam standar apa pun.

Anda dapat mengikuti langkah-langkah sederhana berikut untuk menerapkan notifikasi dalam beberapa menit:

Langkah 1: Periksa dukungan Notifications API

Kami memeriksa apakah webkitNotifications didukung. Perhatikan bahwa nama webkitNotifications karena merupakan bagian dari spesifikasi draf. Spesifikasi akhir akan memiliki fungsi notifications().

// check for notifications support
// you can omit the 'window' keyword
if (window.webkitNotifications) {
console
.log("Notifications are supported!");
}
else {
console
.log("Notifications are not supported for this Browser/OS version yet.");
}

Langkah 2: Izinkan pengguna memberikan izin ke situs untuk menampilkan notifikasi

Setiap konstruktor yang kami sebutkan akan menampilkan error keamanan jika pengguna belum memberikan izin secara manual ke situs untuk menampilkan notifikasi. Untuk menangani pengecualian, Anda dapat menggunakan pernyataan try-catch, tetapi Anda juga dapat menggunakan metode checkPermission untuk tujuan yang sama.

document.querySelector('#show_button').addEventListener('click', function() {
if (window.webkitNotifications.checkPermission() == 0) { // 0 is PERMISSION_ALLOWED
// function defined in step 2
window
.webkitNotifications.createNotification(
   
'icon.png', 'Notification Title', 'Notification content...');
} else {
window
.webkitNotifications.requestPermission();
}
}, false);

Jika aplikasi web tidak memiliki izin untuk menampilkan notifikasi, metode requestPermission akan menampilkan infobar:

Infobar izin notifikasi di Google Chrome
Infobar izin notifikasi di Google Chrome.

Namun, sangat penting untuk diingat bahwa metode requestPermission hanya berfungsi di pengendali peristiwa yang dipicu oleh tindakan pengguna, seperti peristiwa mouse atau keyboard, untuk menghindari infobar yang tidak diminta. Dalam hal ini, tindakan pengguna adalah klik pada tombol dengan ID "show_button". Cuplikan di atas tidak akan pernah berfungsi jika pengguna belum secara eksplisit mengklik tombol atau link yang memicu requestPermission pada suatu waktu.

Langkah 3: Lampirkan pemroses dan tindakan lainnya

document.querySelector('#show_button').addEventListener('click', function() {
 
if (window.webkitNotifications.checkPermission() == 0) { // 0 is PERMISSION_ALLOWED
   
// function defined in step 2
    notification_test
= window.webkitNotifications.createNotification(
     
'icon.png', 'Notification Title', 'Notification content...');
    notification_test
.ondisplay = function() { ... do something ... };
    notification_test
.onclose = function() { ... do something else ... };
    notification_test
.show();
 
} else {
    window
.webkitNotifications.requestPermission();
 
}
}, false);

Pada tahap ini, Anda mungkin ingin mengenkapsulasi semua peristiwa dan tindakan ini dengan membuat class Notifikasi Anda sendiri agar kode tetap lebih bersih, meskipun hal ini di luar cakupan tutorial ini.