在没有 iBeacon 的情况下实施地理围栏时,当应用程序不是 运行 时,不会调用 didEnterRegion 和 didDetermineState
didEnterRegion & didDetermineState not being called when the app is not running while implementing Geofencing without iBeacon
我正在尝试使用 iBeacon 实现地理围栏。这
didStartMonitoringFor
正在调用,但是
didEnterRegion
& didDetermineState
当应用不是 运行 时未被调用。
我在 didStartMonitoringFor
中调用 requestState
。所以 didDetermineState
是第一次被调用。但是在位置更改时不会被调用。有人可以帮助我吗?
提前致谢!
感谢上帝!我自己得到了答案。
我一直在主屏幕 class 中进行所有声明和委托方法实现。我将所有部分更改为 AppDelegate
class。还对位置管理器的属性进行了一些更改
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)
}
成功了!
我正在尝试使用 iBeacon 实现地理围栏。这
didStartMonitoringFor
正在调用,但是
didEnterRegion
& didDetermineState
当应用不是 运行 时未被调用。
我在 didStartMonitoringFor
中调用 requestState
。所以 didDetermineState
是第一次被调用。但是在位置更改时不会被调用。有人可以帮助我吗?
提前致谢!
感谢上帝!我自己得到了答案。
我一直在主屏幕 class 中进行所有声明和委托方法实现。我将所有部分更改为 AppDelegate
class。还对位置管理器的属性进行了一些更改
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)
}
成功了!