Notification#

Notification.requestPermission()#

Metoda requestPermission() wysyła prośbę o ustawienie zezwolenia wyświetlania powiadomień dla danego pochodzenia. Opcjonalnie można przekazać funkcję zwrotną wywoływaną po podjętej przez użytkownika decyzji. Metoda jest statyczna, dlatego odwołujemy się do niej wprost z interfejsu Notification.

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. #
Notification.requestPermission([callback]);

gdzie poszczególne człony oznaczają:

Algorytm wywołania metody requestPermission(callback) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Powróć, ale kontynuuj wykonywanie kolejnych kroków w sposób asynchroniczny.
  2. Niech permission będzie łańcuchem znakowym wskazywanym przez zezwolenie.
  3. Jeśli wartością permission jest łańcuch znakowy "default" to poproś użytkownika, czy zgadza się na wyświetlanie powiadomień dla pochodzenia z wejściowego obiektu ustawień. Jeśli tak, to ustaw permission na łańcuch znakowy "granted", w przeciwnym razie na łańcuch znakowy "denied".
  4. Kolejkuj zadanie dla ustawienia zezwolenia na permission i jeśli callback była przekazana to wywołaj callback z pierwszym argumentem w postaci permission.

Podjęcie decyzji przez użytkownika (akceptacja lub odrzucenie) spowoduje, że aplikacja kliencka nie będzie wyświetlała kolejnych okien z zapytaniem dla danej witryny, aczkolwiek funkcja zwrotna przekazana do metody requestPermission() będzie wywoływana zawsze (niezależnie od aktualnego stanu zezwolenia).

Prosty przykład:

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

	document.write(Notification); // function Notification() { [native code] }
	document.write("<br>");

	Notification.requestPermission(function(permit){

		var data = "Argument metody: " + permit
			+ "<br>" + "Notification.permission: " + Notification.permission;

		document.write(data);
		document.close();

	});

</script>

Interfejs Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
static void requestPermission(optional NotificationPermissionCallback callback);

callback NotificationPermissionCallback = void (NotificationPermission permission);

enum NotificationPermission {
	"default",
	"denied",
	"granted"
};

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

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