Utilizzare l'API Notifications

L'API chrome.notifications ti consente di creare notifiche utilizzando modelli e mostrarle Notifiche per gli utenti nella barra delle applicazioni dell'utente:

Notifiche nella barra degli utenti di sistema

Aspetto

Le notifiche avanzate sono disponibili in quattro diverse versioni: di base, immagine, elenco e avanzamento. Tutti le notifiche includono un titolo, un messaggio e una piccola icona visualizzata a sinistra della notifica e un campo contextMessage, che viene visualizzato come terzo campo di testo con un carattere più chiaro.

Una notifica di base:

Notifica di base

Le notifiche elenco mostrano un numero qualsiasi di voci dell'elenco:

Notifica elenco

Le notifiche relative alle immagini includono un'anteprima dell'immagine:

Notifica immagine

Le notifiche di avanzamento mostrano una barra di avanzamento:

Notifica avanzamento

Comportamento

Su ChromeOS, le notifiche vengono visualizzate nella barra delle applicazioni dell'utente e rimangono nella barra delle applicazioni fino al l'utente li ignora. La barra delle applicazioni tiene il conto di tutte le nuove notifiche. Quando un utente vede notifiche nella barra delle applicazioni, il conteggio viene reimpostato su zero.

Alle notifiche può essere assegnata una priorità compresa tra -2 e 2. In ChromeOS vengono mostrate priorità inferiori a 0 centro notifiche e genera un errore su altre piattaforme. La priorità predefinita è 0. Le priorità superiori a 0 vengono mostrate per una durata maggiore, mentre è possibile ricevere più notifiche con priorità elevata visualizzato nella barra delle applicazioni.

L'impostazione priority non influisce sull'ordine delle notifiche su macOS.

Oltre a visualizzare le informazioni, tutti i tipi di notifiche possono includere fino a due attività. Quando gli utenti fanno clic su un'attività, l'estensione può rispondere con l'azione appropriata. Ad esempio: Quando l'utente fa clic su Rispondi, l'app email si apre e l'utente può completare la risposta:

Azione nella notifica

Come svilupparle

Per utilizzare questa API, chiama il metodo notifications.create(), passando i dettagli della notifica utilizzando Il parametro options:

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

Il notifications.NotificationOptions deve includere un elemento notifications.TemplateType, che definisce i dettagli delle notifiche disponibili e il modo in cui vengono visualizzati.

Crea una notifica di base

Tutti i tipi di modello (basic, image, list e progress) devono includere una notifica title e message, nonché iconUrl, che è un link a una piccola icona visualizzata a sinistra di il messaggio di notifica.

Ecco un esempio di modello basic:

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

Utilizza un'immagine

Il tipo di modello image include anche un imageUrl, che è un link a un'immagine visualizzata in anteprima nella notifica. Tieni presente che le immagini non vengono mostrate agli utenti su macOS.

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

Crea una notifica relativa alla lista

Il modello list mostra items sotto forma di elenco. Tieni presente che gli utenti di macOS possono vedere solo il primo elemento.

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."}]
}```

### Create progress notification {: #progress }

The `progress` template displays a progress bar where current progress ranges from 0 to 100. On macOS the progress bar displays as a percentage value in the notification title instead of in the progress bar.

```js
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

Ascoltare gli eventi e rispondere

Tutte le notifiche possono includere listener e gestori di eventi che rispondono alle azioni dell'utente (vedi chrome.events). Ad esempio, puoi scrivere un gestore di eventi che risponda a un notifications.onButtonClicked.

Listener di eventi:

chrome.notifications.onButtonClicked.addListener(replyBtnClick);

Gestore eventi:

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

Valuta la possibilità di includere listener e gestori di eventi all'interno del service worker, in modo che le notifiche anche quando l'estensione non è in esecuzione.