2017-11-20 19 views
0

iBeaconを使用してジオフェンシングを実装しようとしています。 didStartMonitoringForが呼び出されていますが、アプリが実行されていないときは didEnterRegion & didDetermineStateが呼び出されていません。didEnterRegion&didDetermineStateは、iBeaconなしでジオフェンシングを実装しているときにアプリケーションが実行されていないときに呼び出されない

requestStatedidStartMonitoringForに電話しています。したがって、didDetermineStateが初めて呼び出されています。しかし、場所が変化している間は呼び出されません。誰かが私を助けることができますか?

ありがとうございます!

+0

あなたの 'CLLocationManager'を設定するコードを表示してください – Paulw11

答えて

0

ありがとうございました!私は自分で答えを得た。

ホーム画面クラスですべての宣言とデリゲートメソッドの実装を行っています。私はすべての部分をAppDelegateクラスに変更しました。また

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

としてロケーションマネージャのプロパティにいくつかの変更を行った。また

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) 
    } 

両方のデリゲートメソッドを実装し、それが働きました!

関連する問題