Notification#

new Notification()#

Interfejs Notification może być wywoływany w roli konstruktora, dzięki czemu pozwala na bezpośrednie tworzenie nowych powiadomień wprost z interfejsu.

Składnia#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var new_notification = new Notification(title [, options]);

gdzie poszczególne człony oznaczają:

Algorytm wywołania konstruktora new Notification(title, options) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Niech notification będzie nowym powiadomieniem reprezentowanym przez objekt Notification.
  2. Ustaw tytuł w notification na title.
  3. Ustaw kierunek w notification na dir z options.
  4. Jeśli lang z options jest prawidłowym językiem (zgodnym z wymogami dokumentu BCP 47) lub pustym łańcuchem znakowym to ustaw język w notification na lang z options, w przeciwnym razie ustaw go na pusty łańcuch znakowy.
  5. Ustaw pochodzenie w notification na pochodzenie z wejściowego obiektu ustawień.
  6. Ustaw ciało w notification na body z options.
  7. Ustaw etykietę w notification na tag z options.
  8. Jeśli icon w options jest obecny to parsuj icon przy użyciu API bazowego URL określonego przez wejściowy obiekt ustawień, i jeśli to nie zwróci błędu to ustaw URL ikony w notification na zwracaną wartość. W przeciwnym razie URL ikony pozostaje nieustawiony.
  9. Ustaw dane w notification na ustrukturyzowany klon data z options. W razie problemów ponownie zrzuć wyjątek.
  10. Zwróć notification, ale kontynuuj wykonywanie kolejnych kroków w sposób asynchroniczny.
  11. Jeśli platforma powiadomień wspiera ikony i URL ikony został ustawiony to agent użytkownika może rozpocząć w tym miejscu pobieranie ikony wskazywanej przez URL ikony w notification.
  12. Uruchom kroki pokazywania dla notification.

Obiekt zwracany przez konstruktor new Notification() implementuje interfejs Notification, dlatego ma dostęp do wszystkich poleceń z tego interfejsu (oraz z kolejnych interfejsów w łańcuchu dziedziczenia).

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<script>

	// Tworzymy nowe powiadomienie
	var notification1 = new Notification("piesek");

	document.write(notification1); // [object Notification]
	document.write("<br>");
	document.write(notification1.title); // piesek
	document.write("<br>");
	document.write(notification1.dir); // auto
	document.write("<br>");
	document.write(notification1.lang); // "" - pusty łańcuch
	document.write("<br>");
	document.write(notification1.body); // "" - pusty łańcuch
	document.write("<br>");
	document.write(notification1.tag); // "" - pusty łańcuch
	document.write("<br>");
	document.write(notification1.icon); // "" - pusty łańcuch
	document.write("<br>");
	document.write(notification1.data); // undefined

	document.write("<br><br>");

	// Tworzymy kolejne powiadomienie
	var notification2 = new Notification("piesek", {
		dir: "rtl",
		lang: "pl",
		body: "Bardzo miła psina",
		tag: "mieszaniec",
		icon: "http://www.crimsteam.site90.net/icon.ico",
		data: 6
	});

	document.write(notification2); // [object Notification]
	document.write("<br>");
	document.write(notification2.title); // piesek
	document.write("<br>");
	document.write(notification2.dir); // rtl
	document.write("<br>");
	document.write(notification2.lang); // pl
	document.write("<br>");
	document.write(notification2.body); // Bardzo miła psina
	document.write("<br>");
	document.write(notification2.tag); // mieszaniec
	document.write("<br>");
	document.write(notification2.icon); // http://www.crimsteam.site90.net/icon.ico
	document.write("<br>");
	document.write(notification2.data); // undefined

</script>

Interfejs Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
[Constructor(DOMString title, optional NotificationOptions options), Exposed=Window,Worker]
interface Notification : EventTarget {
};

dictionary NotificationOptions {
	NotificationDirection dir = "auto";
	DOMString lang = "";
	DOMString body = "";
	DOMString tag = "";
	DOMString icon;
	any data = null;
};

enum NotificationDirection {
	"auto",
	"ltr",
	"rtl"
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Notification (H1) new Notification() (H2) Składnia (H3) Interfejs Web IDL (H3) Specyfikacje i inne materiały (H3)