我正在开展项目,当用户到达特定地点时,我需要触发通知,甚至在后台应用。做这个的最好方式是什么?
我发现了以下内容。
locationManager = [CLLocationManager new];
[locationManager startUpdatingLocation];
或
[sharedService.locationManager stopMonitoringSignificantLocationChanges];
或
[locationManager startMonitoringForRegion:region];
关于startUpdatingLocation
我会在3-4分钟后在模拟器和ipod上收到连续通知。
文件说它会耗尽电池,appstore可能不接受,因为这种方法必须由导航类型等应用程序使用。
关于stopMonitoringSignificantLocationChanges
文件说它使用的是蜂窝网络。我不确定它是否适用于ipod。我的iPod无法正常工作。这种方法需要SIM卡吗?
这种方法如何运作?我应该走一段距离才能让这种方法得到回应?我旅行了1-2公里,但没有用。
关于startMonitoringForRegion
我用了
if([CLLocationManager regionMonitoringEnabled])
NSLog(@"monitering enable");
else
NSLog(@"monitering not avail");
对于Ipod,我得到了monitering not avail
。客户也检查了他的iPhone。他也没有得到通知。
请问有人可以解释一下这种方法吗?如果在背景中找到位置的任何其他方式,请告诉。
编辑:
我正在使用startUpdatingLocation。在设备上,它每隔5分钟就会调用didUpdateToLocation
方法。它会使用大量电池吗?和appstore会接受吗?
如果我使用startUpdatingLocation将appstore接受应用程序?因为我的需要只是在用户到达特定地点时发出通知。
答案 0 :(得分:0)
根据您描述的应用要求我认为 - startMonitoringForRegion: 是最好的方法,请看下面的Apple Doc片段......
当用户跨越基于区域的边界时,您可以使用区域监控服务进行通知。区域监控既适用于地理区域(由CLCircularRegion类表示),也适用于信标区域(由CLBeaconRegion类表示)。您可以监视区域以检测指定区域的边界交叉,并使用这些边界交叉执行相关任务。例如,在接近干洗店时,应用程序可以通知用户拿起任何已经脱落的衣服,现在就准备好了。
你的应用程序没有跟踪或路由相关的应用程序,所以我认为使用[locationManager startUpdateLocation]会过度完成。