Wprowadzenie
Interfejs Notifications API umożliwia wyświetlanie użytkownikowi powiadomień o określonych zdarzeniach, zarówno pasywnie (nowe e-maile, tweety lub wydarzenia w kalendarzu), jak i w odpowiedzi na interakcje użytkownika, niezależnie od tego, która karta jest aktywna. Istnieje specyfikacja w wersji roboczej, ale nie jest ona obecnie częścią żadnego standardu.
Aby wdrożyć powiadomienia w kilka minut, wykonaj te proste czynności:
Krok 1. Sprawdź, czy interfejs Notifications API jest obsługiwany
Sprawdzamy, czy webkitNotifications jest obsługiwany. Nazwa webkitNotifications wynika z tego, że jest to część projektu specyfikacji. W ostatecznej wersji specyfikacji będzie zamiast niej funkcja 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.");
}
Krok 2. Zezwól użytkownikowi na przyznanie witrynie uprawnień do wyświetlania powiadomień
Każdy z wymienionych przez nas konstruktorów zgłosi błąd bezpieczeństwa, jeśli użytkownik nie przyzna ręcznie witrynie uprawnień do wyświetlania powiadomień.
Aby obsłużyć wyjątek, możesz użyć instrukcji try-catch, ale możesz też użyć metody checkPermission.
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);
Jeśli aplikacja internetowa nie ma uprawnień do wyświetlania powiadomień, metoda requestPermission wyświetli pasek informacyjny:
Pamiętaj jednak, że metoda requestPermission działa tylko w procedurach obsługi zdarzeń wywoływanych przez działanie użytkownika, np. zdarzenia myszy lub klawiatury, aby uniknąć niechcianych pasków informacyjnych. W tym przypadku działaniem użytkownika jest kliknięcie przycisku o identyfikatorze „show_button”.
Powyższy fragment kodu nigdy nie zadziała, jeśli użytkownik nie kliknie wyraźnie przycisku lub linku, który w pewnym momencie wywoła requestPermission.
Krok 3. Dołącz odbiorniki i inne działania
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);
W tym momencie możesz chcieć zamknąć wszystkie te zdarzenia i działania w klasie powiadomień, aby kod był bardziej przejrzysty, ale to wykracza poza zakres tego samouczka.