代码之家  ›  专栏  ›  技术社区  ›  Karan Alangat

在没有iBeacon的情况下实现地理围栏时,当应用程序未运行时,不会调用didEnterRegion和diDetermineState

  •  0
  • Karan Alangat  · 技术社区  · 7 年前

    我正在尝试在没有iBeacon的情况下实施地理围栏。这个 didStartMonitoringFor 正在被呼叫,但是 didEnterRegion & didDetermineState 应用程序未运行时未被调用。

    我打电话给 requestState didStartMonitoringFor . 所以 不动产 是第一次被呼叫。但在位置变化时不会被呼叫。有人能帮我吗?

    提前感谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Karan Alangat    7 年前

    感谢上帝!我自己得到了答案。

    我一直在主屏幕类中执行所有声明和委托方法实现。我把所有部分都改成了 AppDelegate 班还对location manager的属性进行了一些更改,如

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

    它成功了!