地理围栏iOS8:iOS需要背景模式Geofencing

我在我的应用程序中使用了geofencing。

Geofencefunction描述:

应用程序在进入或退出区域时具有两种types的function:

  1. 重置围栏:如果用户将进入该区域,该区域具有重置围栏的function,则应用程序将调用一个networking服务并获得新的围栏列表。 这个function也应该在后台模式下工作。

  2. 应用程序打开:如果用户将进入该地区,该地区具有app_open的function,那么应用程序将

    *a. Show alert, if the app is in foreground mode* *b. Show notification, if the app is in background mode* 

我已经使用区域监控来实现此function,也不希望使用重大的位置更改,因为应用程序设置了围绕100到200米半径的围栏。

现在我的问题是,

  1. 我应该使用后台模式“应用程序寄存器的位置更新”监测区域的交叉
  2. 我用下面的代码在背景模式下调用“重置围栏”的web服务。

    – (void)beginBackgroundUpdateTask {self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^ {[self endBackgroundUpdateTask]; }]; }

    – (void)endBackgroundUpdateTask {[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid; }

所以,我应该应用任何设置在info.plist由于[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandle。

请进一步指导我。 我通过互联网search了很多,但是还没有find我上面两个问题的具体答案。

注意:由于后台模式“位置更新”,该应用程序已被苹果拒绝。 请给我build议,所以苹果不会拒绝该应用程序。

以下是原因。

2.16:多任务应用程序只能使用后台服务的目的:VoIP,audio播放,位置,任务完成,本地通知等。—– 2.16 —–我们发现您的应用程序使用后台模式,但不包括需要该模式持续运行的function。 这种行为不符合App Store评论指南。 我们注意到您的应用在Info.plist的UIBackgroundModes项中声明了对位置的支持,但不包括需要持久位置的function。 在应用程序位于后台时添加要求持续使用实时位置更新的function或从UIBackgroundModes项中移除“位置”设置将是适当的。 如果您的应用程序不需要持续的实时位置更新,则build议使用重大更改位置服务或区域监视位置服务。

非常感谢提前。

我们的应用程序由于相同的原因被拒绝。 如果您所做的只是区域监控,则不需要位置更新后台模式。 我们把它关掉了,我们的地区监测工作按照要求进行。 即使应用没有运行,当用户进入该区域时,它也是由iOS启动的。 我们重新提交了该应用程序,并获得批准。