Idioma: HTML | XAML

Inicio rápido: administrar notificaciones de geovallas en primer plano (XAML)

Applies to Windows and Windows Phone

En este tema se describen los pasos para administrar notificaciones de Geofence en primer plano, en una aplicación de Windows en tiempo de ejecución con C++, C# o Visual Basic.

Guía básica: Relación de este tema con los demás. Consulta:

Introducción

Una vez creadas las geovallas, tendrás que agregar la lógica para administrar lo que sucede cuando se produce un evento de geovalla. En función de los MonitoredStates que hayas configurado, podrías recibir un evento cuando:

  • El usuario ha entrado en una región de interés.
  • El usuario ha salido de una región de interés.
  • La geovalla ha expirado o ha sido eliminada. Ten en cuenta que una aplicación en segundo plano no se activa en caso de evento de eliminación.

Puedes escuchar los eventos directamente desde tu aplicación cuando se está ejecutando, o registrarse en una tarea en segundo plano para recibir notificaciones en segundo plano cuando se produzca un evento. Para obtener más información sobre las geovallas y las tareas en segundo plano, consulta Inicio rápido: escuchar eventos de geovallas en segundo plano, Inicio rápido: administrar notificaciones de geovallas desde una tarea en segundo plano y Directrices para geovallas.

Registrarse para eventos de cambio de estado de geovalla

Para que tu aplicación reciba notificaciones en primer plano del cambio en el estado de una geovalla, debes registrar un controlador de eventos. Normalmente esto se configura al crear la geovalla.


private void Initialize()
{
    // other initialization logic

    GeofenceMonitor.Current.GeofenceStateChanged += OnGeofenceStateChanged;
}



Implementa el controlador de eventos de geovalla

El paso siguiente es implementar los controladores de eventos. La acción que se siga aquí dependerá de para qué esté usando tu aplicación la geovalla.


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.

            }
        }
    });
}





Temas relacionados

Guías básicas
Guía básica para crear aplicaciones Windows en tiempo de ejecución con C# y Visual Basic
Guía básica para crear aplicaciones de Windows en tiempo de ejecución con C++
Diseño de la experiencia del usuario para aplicaciones
Tareas
Inicio rápido: Configurar una geovalla
Inicio rápido: Escuchar eventos de geovallas en segundo plano
Inicio rápido: Administrar notificaciones de geovallas en una tarea en segundo plano
Referencia
Geoshape
Geofence
Geolocator
Otros recursos
Directrices para geovallas

 

 

Mostrar:
© 2014 Microsoft