Démarrage rapide : interception de notifications Push dans des applications en cours d’exécution (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Remarque  Vous n’utilisez pas JavaScript ? Voir Démarrage rapide : interception de notifications Push dans des applications en cours d’exécution (XAML).

 

Vous pouvez concevoir votre application pour intercepter une notification Push et répondre à cette notification d’une manière autre que celle par défaut. Cette procédure peut être employée pour tous les types de notification Push mais peut s’avérer particulièrement utile pour les notifications toast et brutes.

Lorsque le service cloud de votre application envoie une notification à Windows, votre application a l’occasion d’intercepter et de gérer cette notification avant d’afficher un toast, de mettre à jour une vignette ou un badge, ou bien de remettre une notification brute à une tâche en arrière-plan. Elle peut aussi supprimer l’affichage ou mettre à jour ces éléments. L’implémentation d’un gestionnaire d’événements de remise de notification est facultative. Elle est surtout utile dans des scénarios où l’application cherche à gérer et supprimer des toasts entrants plutôt que de les montrer à l’utilisateur.

Remarque  À compter de Windows Phone 8.1, le téléphone peut également empêcher l’affichage d’une notification toast par l’utilisation de la propriété ToastNotification.suppressPopup ou ScheduledToastNotification.suppressPopupdans le contenu XML de la notification.

Remarque  Cette procédure s’applique uniquement aux applications en cours d’exécution. Les notifications que le système envoie lorsque l’application n’est pas en cours d’exécution et que le gestionnaire n’est pas implémenté sont remises de manière normale — les vignettes sont mises à jour, le toast est affiché et les notifications brutes sont remises aux tâches en arrière-plan (si celles-ci sont implémentées).

 

Prérequis

Pour comprendre cette rubrique ou utiliser le code qu’elle fournit, voici ce dont vous aurez besoin :

Instructions

1. Facultatif : déclarer une variable d’espace de noms

Cette étape permet d’utiliser un nom court à la place du nom complet de l’espace de noms. Elle équivaut à l’instruction « using » dans C# ou « Imports » dans Visual Basic. Elle vous permet de simplifier votre code.

Remarque  Le code suivant suppose que cette variable a été déclarée.

 


var pushNotifications = Windows.Networking.PushNotifications;

2. Créer un canal de notification Push

Un canal de notification valide est requis pour recevoir des notifications push émises depuis un serveur cloud. Le détecteur d’événements surveille l’arrivée de la notification via ce canal. Pour plus d’informations sur la création d’un canal, voir Comment demander, créer et enregistrer un canal de notification.

En cas de succès, cet exemple crée un canal accessible via newChannel.uri.


var channel;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();

return channelOperation.then(function (newChannel) {
    channel = newChannel;
    },
    function (error) {
        // ...
    }
);

3. Créer une fonction pour gérer l’événement de notification Push

L’exemple ci-dessous montre comment gérer tous les types de notification.

La dernière ligne de code dans cet exemple définit la propriété cancel de l’événement sur true. Cela empêche la notification d’apporter des modifications quelconques à l’interface utilisateur, telles que la mise à jour d’une vignette ou d’un badge, ou l’affichage d’un toast. Dans le cas d’une notification brute, cela empêche la remise de la notification à une tâche en arrière-plan, si une telle tâche est implémentée. Ainsi donc, toutes les réponses transmises à la notification dépendent du gestionnaire.


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. Ajouter un détecteur d’événements pour les notifications brutes reçues

Utilisez le canal créé à l’étape 1 pour affecter le gestionnaire d’événements créé à l’étape 2 pour gérer l’événement PushNotificationReceived.


channel.addEventListener("pushnotificationreceived", onPushNotification, false);

Récapitulatif

Si votre scénario le demande, l’interception et la gestion d’une notification Push quand votre application est en cours d’exécution peut permettre à votre application de contrôler davantage les effets de ces notifications. Par exemple, vous souhaiterez peut-être éviter d’afficher une notification toast au-dessus d’un jeu en cours et votre gestionnaire d’événements peut intégrer le contenu de cette notification dans l’interface utilisateur du jeu de manière moins intrusive.

Rubriques associées

Exemples

Exemple de notifications brutes

Exemple de notifications Push et périodiques

Informations conceptuelles

Vue d’ensemble des services de notifications Push Windows (WNS)

Vue d’ensemble des notifications brutes

Meilleures pratiques

Recommandations et liste de vérification sur les notifications Push

Recommandations et liste de vérification sur les notifications brutes

Procédure

Démarrage rapide : création et inscription d’une tâche de notification brute en arrière-plan