如何使用推送通知启动 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 应用上跟踪用户对推送通知的选择?

Firebase 推送通知 - 如何跟踪用户 FCM 令牌?

推送通知中的 Service Worker 跟踪

跟踪推送通知并记录它们