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
Aufgaben
Einrichten von Geofence-Bereichen
Lauschen auf Geofence-Ereignisse im Hintergrund
Behandeln von Geofence-Benachrichtigungen über eine Hintergrundaufgabe
Referenz
Weitere Ressourcen
Geolocation-Beispiel für Windows 10