Behandeln von Geofence-Benachrichtigungen im Vordergrund (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesem Thema werden Sie durch die Schritte zum Behandeln einer Geofence-Benachrichtigung im Vordergrund in der App 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 können Sie in folgenden Fällen ein Ereignis empfangen:

  • 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 direkt in der App auf Ereignisse lauschen, wenn diese ausgeführt wird, oder Sie können eine Registrierung für eine Hintergrundaufgabe vornehmen, damit Sie eine Hintergrundbenachrichtigung erhalten, sobald ein Ereignis eintritt.. Weitere Informationen zur Hintergrundaufgabe und zu Geofences finden Sie unter Lauschen auf Geofence-Ereignisse im Hintergrund, 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 Apps mit JavaScript

UX-Design für Apps

Aufgaben

Einrichten von Geofence-Bereichen

Lauschen auf Geofence-Ereignisse im Hintergrund

Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe

Referenz

Geoshape

Geofence

Geolocator

Weitere Ressourcen

Geolocation-Beispiel für Windows 10

Geolocation-Beispiel für Windows 8.1

Richtlinien für Geofencing