我使用位置更新作为后台模式完成了一个应用程序,我使用webservice在每个keepAlive间隔后更新我的位置。我使用下面提到的代码。
if ([application respondsToSelector:@selector(setKeepAliveTimeout:handler:)])
{
[application setKeepAliveTimeout:120 handler:^{
DDLogVerbose(@"KeepAliveHandler");
// Do other keep alive stuff here.
}];
}
self.bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"ending background task");
[[UIApplication sharedApplication] endBackgroundTask:self.bgTask];
self.bgTask = UIBackgroundTaskInvalid;
}];
self.backgroundTimerForLocationUpdate = [NSTimer scheduledTimerWithTimeInterval:120
target:self
selector:@selector(changeAccuracy)
userInfo:nil
repeats:YES];
并且在位置委托中,我正在调用Web请求来更新服务器中的位置,以跟踪用户。
Apple会拒绝该应用使用位置更新后台模式。
答案 0 :(得分:1)
Will apple reject the app for using the location update background mode.
According to the Apple Documentation只有iOS App
Playing and Recording Background Audio
连续播放或录制音频的应用(即使应用在后台运行)也可以注册以在后台执行这些任务。Tracking the User’s Location
和Implementing a VoIP Client (Voice over Internet Protocol)
。因此,根本没有问题,但最终结果将由Apple Review Team
祝你好运
答案 1 :(得分:1)
如果您在应用程序处于后台时启动或停止位置更新,Apple将拒绝应用程序。
但您可以使用方法“startMonitoringSignificantLocationChanges”在后台获取最新的位置更新。它将在应用程序处于后台时更新当前位置值,当您进入前台模式时,您将获得最新的位置信息以执行任何子序列活动。