我正在开发一个项目,当用户到达特定位置时,我需要触发通知,甚至是后台应用程序。做这个的最好方式是什么?
我发现如下。
locationManager = [CLLocationManager new];
[locationManager startUpdatingLocation];
或者
[sharedService.locationManager stopMonitoringSignificantLocationChanges];
或者
[locationManager startMonitoringForRegion:region];
关于startUpdatingLocation
我在 3-4 分钟后在模拟器和 ipod 上收到持续通知。文件说它会耗尽电池,应用商店可能不接受,因为这种方法必须由导航类型等应用程序使用。
关于stopMonitoringSignificantLocationChanges
文件说它使用蜂窝网络。我不确定它是否适用于 ipod。在我的 ipod 上不工作。这个方法需要sim卡吗?这种方法是如何工作的?意味着我应该走一段距离才能让这种方法得到响应?我走了1-2公里,但没有用。
关于startMonitoringForRegion
我用过
if([CLLocationManager regionMonitoringEnabled])
NSLog(@"monitering enable");
else
NSLog(@"monitering not avail");
对于 Ipod,我得到了monitering not avail
. 客户还检查了他的iphone。他也没有得到通知。
请问有人可以解释一下这种方法吗?如果有任何其他方式在后台找到位置,请告诉。
编辑:我正在使用 startUpdatingLocation。didUpdateToLocation
在设备上,它每 5 分钟调用一次方法。会用很多电池吗?appstore 会接受这个吗?
如果我使用 startUpdatingLocation 将 appstore 接受应用程序吗?因为我的需要只是在用户到达特定地点时发出通知。