To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.
Interfejs Powiadomień Notifications API
jest używany do konfigurowania i wyświetlania powiadomień komputerowych do użytkownika .
Konstruktor
Notification.Notification()
- Tworzy nową instancję obiektu
Notification
.
Cechy
Statyczne Cechy
Te Cechy są dostępne tylko dla obiektu powiadomienia.
Notification.permission
Read only- Linia reprezentująca obecne uprawnienia do wyświetlania powiadomień.Możliwe Wartośći to:denied(Użytkownik odmawia do wyświetlania powiadomień), granted(Użytkownik zaakceptował wyświetlanie powiadomień),albo default(Wybór użytkownika jest nieznany i dlatego przeglądarka zachowuje się jak przy odmowie).
Cechy Instancji
Te Cechy są dostępne tylko dla obiektu powiadomień.
Notification.title
Read only- Tytuł powiadomienia jak określone w opcjach parametru konstruktora.
Notification.dir
Read only- Kierunek tekstu powiadomienia jak określone w opcjach parametru konstruktora.
Notification.lang
Read only- Język kodu powiadomienia jak określone w opcjach parametru konstruktora.
Notification.body
Read only- Tekst powiadomienia jak określone w opcjach parametru konstruktora.
Notification.tag
Read only- ID powiadomienia (jeżeli jakiekolwiek) jak określone w opcjach parametru konstruktora.
Notification.icon
Read only- Url obrazku użytego w powiadomieniu jak określone w opcjach parametru konstruktora.
Notification.data
Read only- Zwraca klon struktury daty powiadomienia.
Notification.silent
Read only- Opisuje czy powiadomienie powinno być ciche,takie jak bez dźwięku czy wbiracji bez względu na ustawienia urządzenia.
Nie wspierane cechy
Pokazane Cechy są najbardziej aktualną ze specyfikacją, ale nie są wspierane narazie przez żadną przeglądarkę.Wskazane jest aby sprawdzać regularnie czy status się zaktualizował , i daj nam znać jeżeli znajdziesz nie aktualne informacje.
Notification.noscreen
Read only- Określa, czy należy włączyć powiadomienia na ekranie urządzenia, czy też nie.
Notification.renotify
Read only- Określa, czy użytkownik powinien być powiadamiany po nowym powiadomieniu i zastąpić stare powiadomienie.
Notification.sound
Read only- Określa dźwięk do odtworzenia wraz z powiadomieniem,za miejscę podstawowego powiadomienia systemowego.
Notification.sticky
Read only- Określa czy powiadomienie powinno być trudniejsze do usunięcia przez użytkownika, klejące 'sticky'.
Notification.vibrate
Read only- Określa wibrację urządzenia do emisji przez urządzenie.
Obsługa zdarzeń
Notification.onclick
- Obsługa dla zdarzenia
click
.Odpalane przy każdym kliknięciu powiadomienia. Notification.onerror
- Obsługa dla zdarzenia
error
.Odpalane przy każdym razie kiedy powiadomienie będzie napotykało błąd.
Przestarzała obsługa
Pokazana obsługa zdarzeń jest nadal wspierana w sekcji poniższej browser compatibility,ale nie pokazane w obecnej specyfikacji. I w związku z tym, aby bezpiecznie założyć, że są przestarzałe mogą przestać działać w przyszłych wersjach przeglądarek.
Notification.onclose
- Obsługa zdażenia
close
. Zamyka powiadomienie. Notification.onshow
- Obsługa zdażenia
show
.Pokazuje gdy powiadomienie jest pokazywane.
Metoda
Statyczna metoda
Te metody są dostępne tylko dla obiektu powiadomień.
Notification.requestPermission()
- Requests permission from the user to display notifications.
Metoda instacji
Te cechy są dostępne tylko dla obiektu powiadomień albo to prototype
. Obiekt powiadomień pobiera to z interfejsu EventTarget
.
Notification.close()
- Programowo zamyka powiadomienie.
Przykład
W podstawowtym HTMLu:
<button onclick="notifyMe()">Pokaż Powiadomienie!</button>
Jest to możliwe aby wysłać powiadomienie - tutaj pokazujemy jak łatwo i w kompletnym składzie kodu zobaczyć czy powiadomienia są wspierane,potem sprawdzić uprawnienia czy zostały nadane dla obecnego dźwięku powiadomień, potem sprawdź uprawnienia jeżeli potrzebne,przed wysłaniem powiadomienia.
function notifyMe() { // Sprawdzamy czy przeglądarka obsługuje powiadomienia. if (!("Notification" in window)) { alert("Ta przeglądarka nie obsługuje powiadomień"); } // Sprawdźmy czy uprawnienia dla powiadomienia zostały nadane else if (Notification.permission === "granted") { // jeżeli są tworzymy powiadomienie var notification = new Notification("Hi there!"); } // W innym przypadku tworzymy zapytanie o uprawnienia else if (Notification.permission !== 'denied') { Notification.requestPermission(function (permission) { //Jeżeli użytkownik zaakceptuje tworzymy powiadomienie if (permission === "granted") { var notification = new Notification("Hi there!"); } }); } // Na koniec, jeżeli użytkownik odmówił powiadomień i chcesz szanować go // nie ma potrzeby dręczyć go zapytaniami }
W wielu przypadkach, nie potrzebujesz tworzyć nowych form. Dla przykładu, w naszym Emogotchi demo (see source code), Prosto odpalamy Notification.requestPermission
aby sprawdzać czy możemy dostać uprawnienia do wysyłania powiadomień:
Notification.requestPermission();
Potem odpalamy funkcje spawnNotification()
kiedy chcemy odpalić powiadomienie — to jest przekazywane do argumentu opisanego tekstu,ikony i tytułu który chcemy, potem tworzy konieczne opcje obiektu i odpala powiadomienie używając konstruktora Notification()
.
function spawnNotification(theBody,theIcon,theTitle) { var options = { body: theBody, icon: theIcon } var n = new Notification(theTitle,options); }
Specifikacja
Specification | Status | Comment |
---|---|---|
Notifications API | Recommendation | Living standard |
Kompatybilność Przeglądarek
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Podstawowa usługa | 5webkit[1] 22 |
4.0 moz[2] 22 |
No support | 25 | 6[3] |
ikona |
5webkit[1] 22 |
4.0 moz[2] 22 |
No support | 25 | No support |
Available in workers | ? | 41.0 (41.0) | ? | ? | ? |
silent |
43.0 | No support | No support | No support | No support |
noscreen , renotify , sound , sticky |
No support | No support | No support | No support | No support |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | ? |
(Yes) |
4.0moz[2] 22 |
1.0.1moz[2] 1.2 |
No support | ? | No support |
(Yes) |
icon |
? | (Yes) | 4.0moz[2] 22 |
1.0.1moz[2] 1.2 |
No support | ? | No support | (Yes) |
Available in workers | ? | ? | 41.0 (41.0) | ? | ? | ? | ? | ? |
silent |
No support | 43.0 | No support | No support | No support | No support | No support | 43.0 |
noscreen , renotify , sound , sticky |
No support | No support | No support | No support | No support | No support | No support | No support |
[1] Before Chrome 22, the support for notification followed an old prefixed version of the specification and used the navigator.webkitNotifications
object to instantiate a new notification.
Before Chrome 32, Notification.permission
was not supported.
Before Chrome 42, service worker additions were not supported.
[2] Prior to Firefox 22 (Firefox OS <1.2), the instantiation of a new notification must be done with the navigator.mozNotification
object through its createNotification
method.
Prior to Firefox 22 (Firefox OS <1.2), the Notification was displayed when calling the show
method and supported only the click
and close
events.
Nick Desaulniers wrote a Notification shim to cover both newer and older implementations.
One particular Firefox OS issue is that you can pass a path to an icon to use in the notification, but if the app is packaged you cannot use a relative path like /my_icon.png
. You also can't use window.location.origin + "/my_icon.png"
because window.location.origin
is null in packaged apps. The manifest origin field fixes this, but it is only available in Firefox OS 1.1+. A potential solution for supporting Firefox OS <1.1 is to pass an absolute URL to an externally hosted version of the icon. This is less than ideal as the notification is displayed immediately without the icon, then the icon is fetched, but it works on all versions of Firefox OS.
When using notifications in a Firefox OS app, be sure to add the desktop-notification
permission in your manifest file. Notifications can be used at any permission level, hosted or above: "permissions": { "desktop-notification": {} }
[3] Safari zaczeło wspierać powiadomienia z wersją Safari 6,ale tylko od Mac OSX 10.8+(Mountain Lion).