Interfejs API rozszerzonych powiadomień

Różnica między platformami: w Chrome w wersji 59 powiadomienia wyświetlają się inaczej w przypadku użytkowników systemu Mac OS X. Zamiast powiadomień Chrome użytkownicy widzą natywne powiadomienia Mac OS X. Więcej informacji znajdziesz w tym artykule.

Interfejs Rich Notifications API umożliwia tworzenie powiadomień za pomocą szablonów i wyświetlanie tych powiadomień użytkownikom w obszarze powiadomień systemu:

Powiadomienia w obszarze powiadomień użytkownika systemu

Wygląd

Powiadomienia rozszerzone są dostępne w 4 wersjach: podstawowej, graficznej, listy i postępu. Wszystkie powiadomienia zawierają tytuł, wiadomość, małą ikonę wyświetlaną po lewej stronie wiadomości powiadomienia oraz pole contextMessage, które jest wyświetlane jako 3 pole tekstowe w jaśniejszym kolorze czcionki.

Podstawowy obraz:

Podstawowe powiadomienie

Powiadomienia z listą wyświetlają dowolną liczbę elementów listy:

Powiadomienie o liście

Powiadomienia graficzne zawierają podgląd obrazu:

Powiadomienie o obrazie

Powiadomienia o postępie zawierają pasek postępu:

Powiadomienie o postępach

Zachowanie

W ChromeOS powiadomienia pojawiają się w obszarze powiadomień użytkownika i pozostają tam, dopóki użytkownik ich nie zamknie. Obszar powiadomień zlicza wszystkie nowe powiadomienia. Gdy użytkownik zobaczy powiadomienia w obszarze powiadomień, licznik zostanie zresetowany do zera.

Powiadomieniom można przypisać priorytet od -2 do 2. Priorytety < 0 są wyświetlane w centrum powiadomień ChromeOS i powodują błąd na innych platformach. Priorytet 0 jest priorytetem domyślnym. Priorytety > 0 są wyświetlane przez dłuższy czas, a w obszarze powiadomień można wyświetlać więcej powiadomień o wysokim priorytecie.

Oprócz wyświetlania informacji wszystkie typy powiadomień mogą zawierać maksymalnie 2 elementy działania. Gdy użytkownicy klikną element działania, Twoja aplikacja może odpowiedzieć odpowiednim działaniem. Na przykład gdy użytkownik kliknie „Odpowiedz”, otworzy się aplikacja do poczty e-mail i użytkownik będzie mógł dokończyć odpowiedź:

Działanie w powiadomieniu

Tworzenie

Aby użyć tego interfejsu API, wywołaj metodę notifications.create, przekazując szczegóły powiadomienia za pomocą parametru options:

chrome.notifications.create(id, options, creationCallback);

notifications.NotificationOptions musi zawierać notifications.TemplateType, który określa dostępne szczegóły powiadomienia i sposób ich wyświetlania.

Tworzenie podstawowego powiadomienia

Wszystkie typy szablonów (basic, image, list i progress) muszą zawierać title i message powiadomienia oraz iconUrl, czyli link do małej ikony wyświetlanej po lewej stronie wiadomości powiadomienia.

Oto przykład szablonu basic:

var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon"
}

Tworzenie powiadomienia graficznego

Typ szablonu image zawiera też imageUrl, czyli link do obrazu, którego podgląd jest wyświetlany w powiadomieniu:

Różnica między platformami: obrazy nie będą wyświetlane użytkownikom korzystającym z Chrome w wersji 59 i nowszych w systemie Mac OS X.
var opt = {
  type: "basic",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  imageUrl: "url_to_preview_image"
}

W aplikacjach Chrome ze względu na ścisłą Content Security Policy te adresy URL muszą wskazywać zasób lokalny lub używać adresu URL typu blob lub data. Użyj obrazu w formacie 3:2. W przeciwnym razie obraz będzie otoczony czarną ramką.

Tworzenie powiadomienia z listą

Szablon list wyświetla items w formacie listy:

Różnica między platformami: użytkownikom Chrome w wersji 59 i nowszych w systemie Mac OS X wyświetla się tylko pierwszy element listy.
var opt = {
  type: "list",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  items: [{ title: "Item1", message: "This is item 1."},
          { title: "Item2", message: "This is item 2."},
          { title: "Item3", message: "This is item 3."}]
}

Tworzenie powiadomienia o postępie

Szablon progress wyświetla pasek postępu, na którym bieżący postęp mieści się w zakresie od 0 do 100:

Różnica między platformami: w Chrome w wersji 59 i nowszych w systemie Mac OS X pasek postępu wyświetla się jako wartość procentowa w tytule powiadomienia zamiast paska postępu.
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

Nasłuchiwanie zdarzeń i reagowanie na nie

Wszystkie powiadomienia mogą zawierać detektory zdarzeń i moduły obsługi zdarzeń, które reagują na działania użytkownika (patrz chrome.events). Możesz na przykład napisać moduł obsługi zdarzeń, który będzie reagować na zdarzenie notifications.onButtonClicked.

Detektor zdarzeń:

chrome.notifications.onButtonClicked.addListener(replyBtnClick);

Moduł obsługi zdarzeń:

function replyBtnClick {
    //Write function to respond to user action.
}

Rozważ umieszczenie detektorów i modułów obsługi zdarzeń na stronie zdarzeń, aby powiadomienia mogły się pojawiać nawet wtedy, gdy aplikacja lub rozszerzenie nie są uruchomione.