API Notifiche avanzate

Differenza di piattaforma: nella versione 59 di Chrome, le notifiche hanno un aspetto diverso per gli utenti di Mac OS X. Invece delle notifiche di Chrome, gli utenti vedono le notifiche native di Mac OS X. Scopri di più in questo articolo.

L'API Rich Notifications consente di creare notifiche utilizzando modelli e di mostrare queste notifiche agli utenti nella barra delle applicazioni dell'utente:

Notifiche nella barra degli utenti di sistema

Aspetto

Le notifiche avanzate sono disponibili in quattro tipi diversi: di base, per immagine, elenco e progressi. Tutte le notifiche includono un titolo, un messaggio, una piccola icona visualizzata a sinistra del messaggio di notifica e un campo contextMessage, che viene visualizzato come terzo campo di testo con un carattere di colore più chiaro.

Un'immagine di base:

Notifica di base

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

Notifica elenco

Le notifiche relative alle immagini includono un'anteprima delle immagini:

Notifica immagine

Le notifiche di avanzamento mostrano una barra di avanzamento:

Notifica di avanzamento

Come si comporta

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

Alle notifiche può essere assegnata una priorità compresa tra -2 e 2. Le priorità inferiori a 0 vengono mostrate nel Centro notifiche di ChromeOS e generano un errore su altre piattaforme. La priorità predefinita è 0. Le priorità maggiori di 0 vengono mostrate per aumentare la durata ed è possibile visualizzare un numero maggiore di notifiche con priorità elevata nella barra delle applicazioni.

Tutti i tipi di notifica, oltre alle informazioni, possono includere fino a due attività. Quando gli utenti fanno clic su un'attività, la tua app può rispondere con l'azione appropriata. Ad esempio, quando l'utente fa clic su "Rispondi", si apre l'app email e l'utente può completare la risposta:

Azione nella notifica

Come svilupparle

Per utilizzare questa API, chiama il metodo notifications.create, trasmettendo i dettagli della notifica tramite il parametro options:

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

Il parametro notifications.NotificationOptions deve includere un valore notifications.TemplateType per definire i dettagli delle notifiche disponibili e la relativa modalità di visualizzazione.

Crea notifica di base

Tutti i tipi di modello (basic, image, list e progress) devono includere una notifica title e message, nonché una iconUrl, che è un link a una piccola icona visualizzata a sinistra del 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"
}

Crea notifica immagine

Il tipo di modello image include anche un imageUrl, ovvero un link a un'immagine visualizzata in anteprima all'interno della notifica:

Differenza di piattaforma: le immagini non verranno mostrate agli utenti che utilizzano Chrome 59 o versioni successive su 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"
}

Nelle app di Chrome, a causa di rigidi Criteri di sicurezza del contenuto, questi URL devono indirizzare a una risorsa locale o utilizzare un URL blob o dati. Utilizza proporzioni 3:2 per l'immagine. In caso contrario, l'immagine viene cornice con un bordo nero.

Crea notifica elenco

Il modello list mostra items in formato elenco:

Differenza piattaforma: solo la prima voce dell'elenco viene mostrata agli utenti di Chrome 59 o versioni successive su Mac OS X.
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."}]
}

Crea notifica di avanzamento

Il modello progress mostra una barra di avanzamento in cui l'avanzamento attuale va da 0 a 100:

Differenza di piattaforma: in Chrome 59 e versioni successive su Mac OS X, la barra di avanzamento viene visualizzata come valore percentuale nel titolo della notifica anziché come barra di avanzamento.
var opt = {
  type: "progress",
  title: "Primary Title",
  message: "Primary message to display",
  iconUrl: "url_to_small_icon",
  progress: 42
}

Ascoltare e rispondere agli eventi

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

Listener di eventi:

chrome.notifications.onButtonClicked.addListener(replyBtnClick);

Gestore di eventi:

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

Potresti includere listener e gestori di eventi all'interno della pagina dell'evento, in modo che le notifiche possano apparire anche quando l'app o l'estensione non è in esecuzione.