Die UNLocationNotificationTrigger
ist eine neue Helper-Klasse, die in iOS10 hinzugefügt wurde, um das Auslösen von Benachrichtigungen basierend auf Beacon- oder Geofence-Erkennungen zu erleichtern. Gemäß der Dokumentation ist es entworfen, nur verwendet werden, wenn die Anwendung im Einsatz ist:
Apps Zugriff auf standortbezogene Dienste anfordern müssen und wenn in Use Rechte, um diese Klasse zu verwenden. Um die Berechtigung zur Verwendung von Standortdiensten anzufordern, rufen Sie die requestWhenInUseAuthorization() - Methode von CLLocationManager auf, bevor Sie standortbasierte Auslöser planen.
https://developer.apple.com/reference/usernotifications/unlocationnotificationtrigger
auf den obigen Berechtigungen Basierend, wird die App auslösen nur im Einsatz, wenn. Die Dokumentation sagt nicht explizit, dass es im Hintergrund nicht funktioniert, also versuchen Sie bitte immer Positionserlaubnis mit der requestAlwaysAuthorization()
statt requestWhenInUseAuthorization()
(achten Sie darauf, dass Sie den richtigen Schlüssel in Ihrem Plist, wenn Sie dies tun) , um zu sehen, ob das hilft.
Eine Alternative wäre nicht diese Hilfsklasse zu verwenden und CoreLocation
und Bakenüberwachung zu starten, anstatt manuell, dann erstellen Sie Ihre eigenen UILocalNotification
manuell, wenn Sie die Region Eintrag Rückruf erhalten:
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if let region = region as? CLBeaconRegion {
let notificationMessage = "Wild IBEACON appeared!"
let notification = UILocalNotification()
notification.alertBody = notificationMessage
notification.alertAction = "OK"
UIApplication.shared.presentLocalNotificationNow(notification)
}
}
Der obige Ansatz ist bekannt über App-Neustarts hinweg funktionieren.
Keine Möglichkeit – Vyacheslav
Durch den Neustart des Geräts erzwingen Sie das Beenden der App. Sobald die App geschlossen wird, funktionieren lokale Benachrichtigungen nicht mehr. Sie müssen Push-Benachrichtigungen für dieses Szenario verwenden. – dlbuckley
Sie haben vergessen zu erwähnen, _ welcher Teil Ihrer App_ die Benachrichtigung einrichtet; und ich gehe davon aus, dass deine App die lokale Benachrichtigung nicht setzt, wenn die App beendet wird - nur wenn sie in den Hintergrund wechselt. Es wäre großartig, wenn Sie Ihr OP erweitern und das bitte klären würden. – holex