如何使用推送通知启动 GPS 跟踪
Posted
技术标签:
【中文标题】如何使用推送通知启动 GPS 跟踪【英文标题】:How to start GPS tracking using push notification 【发布时间】:2015-07-17 11:53:59 【问题描述】:我在上午 8 点发送推送通知,以便在后台运行的应用程序中启动 GPS。推送通知接收,但 GPS 未开始跟踪。我怎样才能做到这一点?我正在使用以下代码。
func application(application: UIApplication,
didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
NSLog("userInfoComp %@",userInfo);
var app = UIApplication.sharedApplication()
var bgTask2 : UIBackgroundTaskIdentifier?
bgTask2 = app.beginBackgroundTaskWithExpirationHandler () -> Void in
app.endBackgroundTask(bgTask2!)
bgTask2 = UIBackgroundTaskInvalid
if bgTask2 == UIBackgroundTaskInvalid
return
PSLocationManager.sharedLocationManager().prepLocationUpdates()
PSLocationManager.sharedLocationManager().startLocationUpdates()
【问题讨论】:
收到通知后,您想在后台启动定位服务吗? @saurabh 是的。这是旅行跟踪应用程序。 【参考方案1】:当您的应用处于后台模式时,您无法启动定位服务。当您的应用在用户许可的情况下处于活动状态时,您需要使用 startMonitoringSignificantLocationChanges(即使用户没有使用该应用也可以跟踪他)以在后台模式下获取位置更新。
如果用户不是静止不动的,即使用户每 5 分钟终止应用一次,您也会获得位置更新。
如果您的应用在后台,您可能会使用 startLocationUpdates 获取位置更新,但即使 3-4 个应用在后台操作系统可能会停止更新位置,它也不可靠。
【讨论】:
以上是关于如何使用推送通知启动 GPS 跟踪的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 如何在 iOS 应用上跟踪用户对推送通知的选择?