--- title: Powiadomienie slug: Web/API/powiadomienie tags: - API - JS Powiadomienia - Powiadomienia - Powiadomienie translation_of: Web/API/Notification ---
{{APIRef("Web Notifications")}}
Interfejs Powiadomień {{domxref('Notifications_API','Notifications API')}} jest używany do konfigurowania i wyświetlania powiadomień komputerowych do użytkownika .
{{AvailableInWorkers}}
Te Cechy są dostępne tylko dla obiektu powiadomienia.
Te Cechy są dostępne tylko dla obiektu powiadomień.
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.
Pokazana obsługa zdarzeń jest nadal wspierana w sekcji poniższej {{anch("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.
Te metody są dostępne tylko dla obiektu powiadomień.
Te cechy są dostępne tylko dla obiektu powiadomień albo to prototype
. Obiekt powiadomień pobiera to z interfejsu {{domxref("EventTarget")}}.
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 }
{{EmbedLiveSample('Przyk%C5%82ad', '100%', 30)}}
W wielu przypadkach, nie potrzebujesz tworzyć nowych form. Dla przykładu, w naszym Emogotchi demo (see source code), Prosto odpalamy {{domxref("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 {{domxref("Notification.Notification","Notification()")}}.
function spawnNotification(theBody,theIcon,theTitle) { var options = { body: theBody, icon: theIcon } var n = new Notification(theTitle,options); }
Specification | Status | Comment |
---|---|---|
{{SpecName('Web Notifications')}} | {{Spec2('Web Notifications')}} | Living standard |
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Podstawowa usługa | 5{{property_prefix("webkit")}}[1] 22 |
4.0 {{property_prefix("moz")}}[2] 22 |
{{CompatNo}} | 25 | 6[3] |
ikona |
5{{property_prefix("webkit")}}[1] 22 |
4.0 {{property_prefix("moz")}}[2] 22 |
{{CompatNo}} | 25 | {{CompatNo}} |
Available in workers | {{CompatUnknown}} | {{CompatGeckoDesktop("41.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
silent |
{{CompatChrome(43.0)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
noscreen , renotify , sound , sticky |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} |
{{CompatVersionUnknown}} |
4.0{{property_prefix("moz")}}[2] 22 |
1.0.1{{property_prefix("moz")}}[2] 1.2 |
{{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} |
{{CompatVersionUnknown}} |
icon |
{{CompatUnknown}} | {{CompatVersionUnknown}} | 4.0{{property_prefix("moz")}}[2] 22 |
1.0.1{{property_prefix("moz")}}[2] 1.2 |
{{CompatNo}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatVersionUnknown}} |
Available in workers | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("41.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
silent |
{{CompatNo}} | {{CompatChrome(43.0)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatChrome(43.0)}} |
noscreen , renotify , sound , sticky |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
[1] Before Chrome 22, the support for notification followed an old prefixed version of the specification and used the {{domxref("window.navigator.webkitNotifications","navigator.webkitNotifications")}} object to instantiate a new notification.
Before Chrome 32, {{domxref("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 {{domxref("window.navigator.mozNotification", "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).