Windows Dev Center

Linguaggio: HTML | XAML

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:

Istruzioni

1. Aggiungere dichiarazioni di spazi dei nomi

Windows.Networking.PushNotifications include le API delle notifiche push e non elaborate. Windows.UI.Notifications è necessario per recuperare i contenuti di riquadri, avvisi popup e badge dalla notifica.



using Windows.UI.Notifications;                        
using 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.



PushNotificationChannel channel = null;

try
{
    channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
}

catch (Exception ex)
{ 
    // ... 
}

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.



string content = null;
private async void OnPushNotification(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) 
{ 
    String notificationContent = String.Empty; 
    
    switch (e.NotificationType) 
    { 
        case PushNotificationType.Badge:
            notificationContent = e.BadgeNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Tile: 
            notificationContent = e.TileNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Toast: 
            notificationContent = e.ToastNotification.Content.GetXml(); 
            break; 
        
        case PushNotificationType.Raw: 
            notificationContent = 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.PushNotificationReceived += OnPushNotification;

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
Guida introduttiva: Creazione e registrazione di un'attività in background per una notifica non elaborata

 

 

Mostra:
© 2015 Microsoft