ios - 如何在后台ios9中定期获取位置并将位置发送到服务器

标签 ios objective-c iphone background ios9

我希望我的应用每 15 分钟获取一次位置并将位置信息发送到服务器。 在服务器中,我比较了位置并将响应作为通知发送给客户端(几乎类似于推送通知,但在我的服务器上)。

最佳答案

您可以将 CLLocation Managers 授权设置为 requestAlwaysAuthorization 以连续获取位置(即使您的应用处于后台也是如此。)

self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
    if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
    {
        [self.locationManager requestAlwaysAuthorization];
    }

注意:requestAlwaysAuthorization 非常耗电,苹果审核者会期望有一个非常充分的理由使用它来让您的应用获得批准。此外,确保选中所需背景模式下的“位置更新”。

您可以使用 NSTimer 确定 15 分钟并从上面的 CLLocationManager 获取位置。

之后,您可以使用后台任务将位置更新到服务器。

如果您有任何疑问,可以点击以下链接: http://www.creativeworkline.com/2014/12/core-location-manager-ios-8-fetching-location-background/ http://mobileoop.com/background-location-update-programming-for-ios-7 Periodic iOS background location updates

关于ios - 如何在后台ios9中定期获取位置并将位置发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37896393/

相关文章:

ios - 使用 ARC 编码和解码 CGMutablePathRef

ios - 检查使用模态视图 Controller 隐藏的 iOS 状态栏

iphone - 从 UIView 子类访问 UINavigationController

ios - 自动布局不传递给子层

iphone - 为什么 UIMenuItem Action 的发送者总是 nil?

ios - Swift 泛型和协议(protocol) : Return specialized type from static function?

ios - 实时更新 UITableViewCell 中的 UILabel

objective-c - 从 AppDelegate 推送到特定的 viewController

ios - CLLocation 服务。添加了 plist key 和请求权限,但仍然不适用于 IOS 8

ios - 将数组从 RightChildViewController 传递到 MainVIewController