Language: HTML | XAML

Schnellstart: Behandeln von Geofence-Benachrichtigungen im Vordergrund (HTML)

Applies to Windows and Windows Phone

In diesem Thema werden Sie durch die Schritte zum Behandeln einer Geofence-Benachrichtigung im Vordergrund in der Windows Runtime-App mit JavaScript geführt.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Weitere Informationen:

Einführung

Nachdem Ihre Geofence-Bereiche erstellt wurden, müssen Sie die Logik für das Eintreten eines Geofence-Ereignisses hinzufügen. Je nach eingerichteten MonitoredStates erhalten Sie ggf. in folgenden Fällen ein Ereignis:

  • Der Benutzer hat eine Zielregion betreten.
  • Der Benutzer hat eine Zielregion verlassen.
  • Der Geofence-Bereich ist abgelaufen oder wurde entfernt. Beachten Sie, dass eine Hintergrund-App für ein Entfernungsereignis nicht aktiviert wird.

Sie können die Überwachung auf Ereignisse direkt in der App durchführen, wenn sie ausgeführt wird, oder die Registrierung für eine Hintergrundaufgabe vornehmen, damit Sie eine Hintergrundbenachrichtigung erhalten, wenn ein Ereignis eintritt. Weitere Informationen zur Hintergrundaufgabe und zu Geofences finden Sie unter Schnellstart: Lauschen auf Geofence-Ereignisse im Hintergrund, Schnellstart: Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe und Richtlinien für Geofencing.

Durchführen der Registrierung für Ereignisse zur Änderung des Geofence-Zustands

Damit die App bei der Änderung eines Geofence-Zustands eine Vordergrundbenachrichtigung erhält, müssen Sie einen Ereignishandler registrieren. Dies wird normalerweise eingerichtet, wenn Sie den Geofence-Bereich erstellen.


    function initialize() {

    // other initialization logic

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



Implementieren des Geofence-Ereignishandlers

Der nächste Schritt ist die Implementierung der Ereignishandler. Die hier durchzuführende Aktion hängt davon ab, zu welchem Zweck der Geofence-Bereich von Ihrer App verwendet wird.


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.

            }
        }
    });
}





Verwandte Themen

Roadmaps
Roadmap für Windows-Runtime-Apps mit JavaScript
UX-Design für Apps
Aufgaben
Schnellstart: Einrichten von Geofence-Bereichen
Schnellstart: Durchführen der Überwachung auf Geofence-Ereignisse im Hintergrund
Schnellstart: Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe
Referenz
Geoshape
Geofence
Geolocator
Weitere Ressourcen
Richtlinien für Geofencing

 

 

Anzeigen:
© 2014 Microsoft