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
Autres ressources
Exemple de géolocalisation Windows 10