--- 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}}

Konstruktor

{{domxref("Notification.Notification()")}}
Tworzy nową instancję obiektu {{domxref('Notification')}} .

Cechy

Statyczne Cechy

Te Cechy są dostępne tylko dla obiektu powiadomienia.

{{domxref("Notification.permission")}} {{readonlyinline}}
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ń.

{{domxref("Notification.title")}} {{readonlyinline}}
Tytuł powiadomienia jak określone w opcjach parametru konstruktora.
{{domxref("Notification.dir")}} {{readonlyinline}}
Kierunek tekstu powiadomienia jak określone w opcjach parametru konstruktora.
{{domxref("Notification.lang")}} {{readonlyinline}}
Język kodu powiadomienia jak określone w opcjach parametru konstruktora.
{{domxref("Notification.body")}} {{readonlyinline}}
Tekst powiadomienia jak określone w opcjach parametru konstruktora.
{{domxref("Notification.tag")}} {{readonlyinline}}
ID powiadomienia (jeżeli jakiekolwiek) jak określone w opcjach parametru konstruktora.
{{domxref("Notification.icon")}} {{readonlyinline}}
Url obrazku użytego w powiadomieniu jak określone w opcjach parametru konstruktora.
{{domxref("Notification.data")}} {{readonlyinline}}
Zwraca klon struktury daty powiadomienia.
{{domxref("Notification.silent")}} {{readonlyinline}}
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.

{{domxref("Notification.noscreen")}} {{readonlyinline}}
Określa, czy należy włączyć powiadomienia na ekranie urządzenia, czy też nie.
{{domxref("Notification.renotify")}} {{readonlyinline}}
Określa, czy użytkownik powinien być powiadamiany po nowym powiadomieniu i zastąpić stare powiadomienie.
{{domxref("Notification.sound")}} {{readonlyinline}}
Określa dźwięk do odtworzenia wraz z powiadomieniem,za miejscę podstawowego powiadomienia systemowego.
{{domxref("Notification.sticky")}} {{readonlyinline}}
Określa czy powiadomienie powinno być trudniejsze do usunięcia przez użytkownika, klejące 'sticky'.
{{domxref("Notification.vibrate")}} {{readonlyinline}}
Określa wibrację urządzenia do emisji przez urządzenie.

Obsługa zdarzeń

{{domxref("Notification.onclick")}}
Obsługa dla zdarzenia {{event("click")}}.Odpalane przy każdym kliknięciu powiadomienia.
{{domxref("Notification.onerror")}}
Obsługa dla zdarzenia {{event("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 {{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.

{{domxref("Notification.onclose")}}
Obsługa zdażenia {{event("close")}}. Zamyka powiadomienie.
{{domxref("Notification.onshow")}}
Obsługa zdażenia {{event("show")}}.Pokazuje gdy powiadomienie jest pokazywane.

Metoda

Statyczna metoda

Te metody są dostępne tylko dla obiektu powiadomień.

{{domxref("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 {{domxref("EventTarget")}}.

{{domxref("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
}

{{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);
}

Specifikacja

Specification Status Comment
{{SpecName('Web Notifications')}} {{Spec2('Web Notifications')}} Living standard

Kompatybilność Przeglądarek

{{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).

Zobacz Także