2017-11-20 8 views
0

Ich versuche Geofencing mit iBeacon zu implementieren. Die didStartMonitoringFor wird aufgerufen, aber didEnterRegion & didDetermineState nicht aufgerufen, wenn die App nicht ausgeführt wird.didEnterRegion & didDetermineState wird nicht aufgerufen, wenn die App während der Implementierung von Geofencing ohne iBeacon nicht ausgeführt wird

Ich rufe die requestState in didStartMonitoringFor. So wird die didDetermineState zum ersten Mal aufgerufen. Wird aber nicht aufgerufen, wenn sich der Standort ändert. Kann mir jemand helfen ?

Vielen Dank im Voraus!

+0

Bitte zeigen Sie den Code, wo Sie Ihren 'CLLocationManager' eingerichtet haben – Paulw11

Antwort

0

Gott sei Dank! Ich habe die Antwort alleine bekommen.

Ich habe alle Deklaration und delegieren Methode Implementierung in Home Screen-Klassen. Ich habe den ganzen Teil in AppDelegate Klasse geändert. Auch nahm einige Änderungen an Eigenschaften für Standort-Manager als

locationManager.delegate = self 
    locationManager.activityType = .automotiveNavigation 
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters 
    locationManager.distanceFilter = 10.0 
    locationManager.requestAlwaysAuthorization() 

auch implementiert beide Delegatmethoden

func locationManager(_ manager: CLLocationManager, didStartMonitoringFor region: CLRegion){ 
    manager.requestState(for: region) 
} 
func locationManager(_ manager: CLLocationManager, didDetermineState state: CLRegionState, for region: CLRegion) { 
    if state == .inside 
    { 
      addNotification(region: region) 
    } 
} 
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) { 
      addNotification(region: region) 
    } 

Und es hat funktioniert!

Verwandte Themen