Linguaggio: HTML | XAML

Guida introduttiva: Gestione in primo piano delle notifiche dei recinti virtuali (HTML)

Applies to Windows and Windows Phone

In questo argomento vengono illustrati i passaggi necessari per gestire notifiche di Geofencein primo piano in un'app di Windows Runtime scritta in JavaScript.

Roadmap: che relazione c'è tra questo argomento e gli altri? Vedi:

Introduzione

Dopo aver creato i recinti virtuali, devi aggiungere la logica per gestire gli eventi dei recinti virtuali. A seconda del MonitoredStates configurato, può verificarsi un evento quando:

  • L'utente entra in un'area di interesse.
  • L'utente esce da un'area di interesse.
  • Il recinto virtuale scade o viene rimosso. Tieni presente che le app in background non vengono attivate per gli eventi di rimozione.

È possibile rimanere in attesa degli eventi direttamente dall'app in esecuzione oppure effettuare la registrazione di un'attività in background in modo da ricevere una notifica in background quando si verifica un evento. Per altre info sulle attività in background e i recinti virtuali, vedi Guida introduttiva: Rilevamento in background di eventi di recinti virtuali, Guida introduttiva: Gestione delle notifiche dei recinti virtuali mediante un'attività in background e Linee guida per i recinti virtuali.

Registrare gli eventi di modifica dello stato del recinto virtuale

Affinché l'app possa ricevere una notifica in primo piano relativa a una modifica dello stato del recinto virtuale, devi registrare un gestore di eventi. Questo gestore viene in genere configurato quando si crea il recinto virtuale.


    function initialize() {

    // other initialization logic

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



Implementare il gestore degli eventi del recinto virtuale

Il passaggio successivo consiste nell'implementare i gestori degli eventi. Le azioni eseguite qui dipendono dai motivi per cui l'app usa il recinto virtuale.


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.

            }
        }
    });
}





Argomenti correlati

Roadmap
Roadmap per app di Windows Runtime scritte in JavaScript
Progettazione dell'esperienza utente per le app
Attività
Guida introduttiva: Configurazione di un recinto virtuale
Guida introduttiva: Rilevamento in background di eventi di recinti virtuali
Guida introduttiva: Gestione delle notifiche dei recinti virtuali mediante un'attività in background
Riferimento
Geoshape
Geofence
Geolocator
Altre risorse
Linee guida per la funzionalità per i recinti virtuali

 

 

Mostra:
© 2014 Microsoft