Gérer des notifications de clôture virtuelle au premier plan (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 ]

Cette rubrique vous guide tout au long des étapes nécessaires pour gérer une notification Geofence placée au premier plan, dans votre application.

Feuille de route : comment cette rubrique s’articule-t-elle par rapport aux autres ? Voir :

Introduction

Une fois vos clôtures virtuelles (parfois appelées « géorepères ») créées, vous devrez ajouter la logique afin de gérer ce qui se passe quand un événement de géorepérage survient. En fonction de la propriété MonitoredStates que vous avez configurée, il est possible que vous receviez un événement quand :

  • l’utilisateur a entré une région d’intérêt ;
  • l’utilisateur a quitté une région d’intérêt ;
  • la clôture virtuelle a expiré ou a été supprimée. Notez qu’aucune application en arrière-plan n’est activée pour un événement de suppression.

Vous pouvez écouter des événements directement à partir de votre application en cours d’exécution, ou bien vous inscrire à une tâche en arrière-plan afin de recevoir une notification en arrière-plan dès qu’un événement survient. Pour en savoir plus sur la tâche en arrière-plan et les clôtures virtuelles, voir Détecter des événements de clôture virtuelle en arrière-plan, Gérer des notifications de clôture virtuelle à partir d’une tâche en arrière-plan et Recommandations en matière de géorepérage.

S’inscrire pour des événements de changement d’état de géorepérage

Pour que votre application reçoive une notification au premier plan d’un changement d’état de géorepérage, vous devez inscrire un gestionnaire d’événements. Cet aspect est généralement configuré au moment de créer la clôture virtuelle.

    function initialize() {

    // other initialization logic

    Windows.Devices.Geolocation.Geofencing.GeofenceMonitor.current.addEventListener("geofencestatechanged", onGeofenceStateChanged);
}

Implémenter le gestionnaire d’événements de géorepérage

L’étape suivante consiste à implémenter les gestionnaires d’événements. L’action à entreprendre ici dépend de la raison pour laquelle votre application utilise la clôture virtuelle.

public async void OnGeofenceStateChanged(GeofenceMonitor sender, object e)
{
    var reports = sender.ReadReports();

    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        foreach (GeofenceStateChangeReport report in reports)
        {
            GeofenceState state = report.NewState;

            Geofence geofence = report.Geofence;

            if (state == GeofenceState.Removed)
            {
                // remove the geofence from the geofences collection
                GeofenceMonitor.Current.Geofences.Remove(geofence);
            }
            else if (state == GeofenceState.Entered)
            {
                // Your app takes action based on the entered event

                // NOTE: You might want to write your app to take particular
                // action based on whether the app has internet connectivity.

            }
            else if (state == GeofenceState.Exited)
            {
                // Your app takes action based on the exited event

                // NOTE: You might want to write your app to take particular
                // action based on whether the app has internet connectivity.

            }
        }
    });
}


Rubriques associées

Feuilles de route

Feuille de route pour les applications en JavaScript

Conception de l’expérience utilisateur des applications

Tâches

Configurer une clôture virtuelle

Détecter des événements de clôture virtuelle en arrière-plan

Gérer des notifications de clôture virtuelle à partir d’une tâche en arrière-plan

Référence

Geoshape

Geofence

Geolocator

Autres ressources

Exemple de géolocalisation Windows 10

Exemple de géolocalisation Windows 8.1

Recommandations en matière de géorepérage