Behandeln von Geofence-Benachrichtigungen im Vordergrund
Language: HTML | XAML

Behandeln von Geofence-Benachrichtigungen im Vordergrund (XAML)

[ 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.


private void Initialize()
{
    // other initialization logic

    GeofenceMonitor.Current.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

Aufgaben
Einrichten von Geofence-Bereichen
Lauschen auf Geofence-Ereignisse im Hintergrund
Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe
Weitere Ressourcen
Geolocation-Beispiel für Windows 10
Geolocation-Beispiel für Windows 8.1
Roadmap für Apps mit C# und Visual Basic
Roadmap für Apps mit C++
UX-Design für Apps
Richtlinien für Geofencing
Geoshape
Geofence
Geolocator

 

 

Anzeigen:
© 2017 Microsoft