Guida introduttiva: Intercettazione delle notifiche push per le app in esecuzione (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
Nota Se non usi JavaScript, vedi Guida introduttiva: Intercettazione delle notifiche push per le app in esecuzione (XAML).
Puoi progettare la tua app in modo che intercetti una notifica push e risponda in un modo non predefinito. Questa procedura può essere usata per tutti i tipi di notifica push, ma è particolarmente utile per le notifiche di tipo avviso popup e non elaborate.
Quando il servizio cloud della tua app invia una notifica a Windows, l'app ha l'opportunità di intercettarla e gestirla prima che visualizzi un avviso popup, aggiorni un riquadro o una notifica o recapiti una notifica non elaborata a un'attività in background. Può inoltre impedire la visualizzazione o l'aggiornamento di questi elementi. L'implementazione di un gestore eventi di recapito delle notifiche è facoltativa. È utile soprattutto negli scenari in cui l'app intende gestire gli avvisi popup in ingresso senza visualizzarli per l'utente.
Nota Per quanto riguarda Windows Phone 8.1, il telefono può impedire la visualizzazione di una notifica di tipo avviso popup usando la proprietà ToastNotification.suppressPopup o ScheduledToastNotification.suppressPopup nel contenuto XML della notifica.
Nota Questa procedura si applica solo alle app in esecuzione. Le notifiche inviate dal sistema quando l'app non è in esecuzione e il gestore non è implementato vengono recapitate normalmente— i riquadri vengono aggiornati, l'avviso popup viene visualizzato e le notifiche non elaborate vengono recapitate alle attività in background (se implementate).
Prerequisiti
Per una piena comprensione di questo argomento o per usare il codice fornito, devi avere:
- Familiarità con le notifiche push. Per altre informazioni, vedi la panoramica di Servizi notifica Push Windows (WNS).
- Un servizio cloud in grado di inviare notifiche push a Servizi notifica Push Windows. Per altre informazioni, vedi Guida introduttiva: Invio di una notifica push.
Istruzioni
1. Facoltativo: dichiarare una variabile spazio dei nomi
Questa procedura ti fornisce un nome breve da usare al posto del nome completo dello spazio dei nomi. È equivalente all'istruzione "using" in C# o all'istruzione "Imports" in Visual Basic Consente di semplificare il codice.
Nota Il codice seguente presuppone che questa variabile sia stata dichiarata.
var pushNotifications = Windows.Networking.PushNotifications;
2. Creare un canale di notifica push
Per ricevere notifiche push da un server cloud è necessario un canale di notifica valido. Il listener di eventi controlla il canale per individuare l'arrivo della notifica. Per altre informazioni su come creare un canale, vedi Come richiedere, creare e salvare un canale di notifica.
Questo esempio crea un canale accessibile tramite newChannel.uri.
var channel;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();
return channelOperation.then(function (newChannel) {
channel = newChannel;
},
function (error) {
// ...
}
);
3. Creare una funzione per gestire l'evento di notifica push
L'esempio seguente mostra come gestire tutti i tipi di notifica.
L'ultima riga di codice nell'esempio imposta la proprietà cancel dell'evento su true. In questo modo si impedisce alla notifica di apportare modifiche all'interfaccia utente, ad esempio aggiornare un riquadro o una notifica badge o visualizzare un avviso popup. Nel caso di una notifica non elaborata, si impedisce che questa venga recapitata a un'attività in background, se implementata. In questo modo qualsiasi risposta alla notifica viene elaborata dal gestore.
var content;
function onPushNotification(e) {
var notificationPayload;
switch (e.notificationType) {
case pushNotifications.PushNotificationType.toast:
notificationPayload = e.toastNotification.content.getXml();
break;
case pushNotifications.PushNotificationType.tile:
notificationPayload = e.tileNotification.content.getXml();
break;
case pushNotifications.PushNotificationType.badge:
notificationPayload = e.badgeNotification.content.getXml();
break;
case pushNotifications.PushNotificationType.raw:
notificationPayload = e.rawNotification.content;
break;
}
e.cancel = true;
}
4. Aggiungere un listener di eventi per le notifiche push ricevute
Usa il canale creato nel passaggio 1 per assegnare il gestore eventi creato nel passaggio 2 per la gestione dell'evento PushNotificationReceived.
channel.addEventListener("pushnotificationreceived", onPushNotification, false);
Riepilogo
Se la situazione lo richiede, l'intercettazione e la gestione di una notifica push mentre l'app è in esecuzione può dare all'app maggiore controllo sull'effetto di questo tipo di notifica. Ad esempio, se non vuoi che una notifica di tipo avviso popup si sovrapponga a un gioco in corso, il gestore eventi può integrare il contenuto della notifica nell'interfaccia utente del gioco in un modo meno invadente.
Argomenti correlati
Esempi
Esempio di notifiche non elaborate
Esempio di notifiche push e periodiche
Informazioni concettuali
Panoramica di Servizi notifica Push Windows (WNS)
Panoramica delle notifiche non elaborate
Procedure consigliate
Linee guida ed elenco di controllo per le notifiche push
Linee guida ed elenco di controllo per le notifiche non elaborate
Procedure