Powiadomienie

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 .

Uwaga: This feature is available in Web Workers.

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

Zobacz Także

Autorzy i etykiety dokumentu

 Autorzy tej strony: archdevil666pl, teoli, Arfphis
 Ostatnia aktualizacja: archdevil666pl,