Geofence iOS8 : Require Background Mode for iOS Geofencing
我在应用程序中使用了地理围栏。
地理围栏功能说明:
应用程序在进入或退出区域时具有两种功能:
重置围栏:
如果用户将输入该区域并且该区域具有重置围栏功能,则应用将调用一个Web服务并获取新的围栏列表。此功能也应在后台模式下工作。
应用程式开启:
如果用户将进入该区域并且该区域具有app_open的功能,则app将
1 2 | *a. Show alert, if the app is in foreground mode* *b. Show notification, if the app is in background mode* |
我已经使用区域监视来实现此功能,并且也不想使用重大的位置更改,因为该应用程序设置了大约100至200米半径的围栏。
现在我的问题是
我使用以下代码在后台模式下调用"重置围栏"的Web服务。
-(无效)beginBackgroundUpdateTask
{
self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^ {
[self endBackgroundUpdateTask];
}];
}
-(无效)endBackgroundUpdateTask
{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask];
self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}
因此,由于[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandle,我是否应在info.plist中应用任何设置。
请进一步指导我。我已经在互联网上进行了很多搜索,但仍然找不到上述两个问题的任何具体答案。
注意:由于后台模式"位置更新",该应用已被苹果拒绝。请建议我这样的方式,以便苹果不会拒绝该应用程序。
原因如下。
2.16:多任务应用程序只能将后台服务用于其预期目的:VoIP,音频播放,位置,任务完成,本地通知等。----- 2.16 -----
我们发现您的应用使用后台模式,但不包含要求该模式持续运行的功能。此行为不符合《 App Store审查指南》。
我们注意到您的应用在Info.plist的UIBackgroundModes项中声明了对位置的支持,但其中不包含需要永久位置的功能。
当应用程序在后台运行时,添加需要持续使用实时位置更新的功能,或者从UIBackgroundModes键中删除"位置"设置,将是合适的。如果您的应用程序不需要持续的实时位置更新,则建议使用重大更改位置服务或区域监视位置服务。
提前非常感谢。
出于同样的原因,我们的应用被拒绝了。 如果您要做的只是区域监视,则不需要位置更新后台模式。 我们将其关闭,并且我们的区域监控按需工作。 即使应用未运行,当用户进入该区域时,它也会由iOS启动。 我们重新提交了该应用,该应用已获得批准。