即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?

Posted

技术标签:

【中文标题】即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?【英文标题】:How continue doing iOS location tracking even after the app is killed? 【发布时间】:2018-01-26 17:03:23 【问题描述】:

当满足以下条件时,我在尝试启用持续位置跟踪时遇到问题:

后台提取被禁用 应用被杀死

发生上述情况时,位置更新将停止。我试图让我的服务器发送推送通知以唤醒应用程序,但如果应用程序被终止,它们不会到达。

令人费解的是,类似的功能似乎在 WhatsApp (the live location) 上运行良好。在 WhatsApp 上,即使我禁用后台获取并终止应用程序,它也会设法再次唤醒它以发送更新的位置信息。

有人知道他们在做什么吗?

【问题讨论】:

相关或重复? ***.com/questions/30396367/… 否,因为该答案明确提到您需要“启用后台获取和位置更新的项目设置”。即使后台获取已关闭,WhatsApp 也能正常工作。 【参考方案1】:

似乎 WhatsApp 可以使用 PushKit 来解决这个问题。根据this question:

WhatsApp 可以将 VOIP 后台模式与 PushKit 一起用于 解决这个问题。

VoIP 推送是:

直接发送到应用程序。 考虑了高优先级通知,并立即发送。 即使应用被用户强制退出,也会交付。

我还创建了一个快速示例应用程序来尝试这个,它就像一个魅力。但是,再次根据链接的问题,Apple 并没有真正允许这种解决方案:

Apple 不再允许将 API 用于非 VOIP 应用的推送通知。但是,他们确实允许 WhatsApp 以无限公平的方式进行操作。

【讨论】:

你实现了吗(在应用程序被杀死时跟踪用户位置)。如果是,请分享代码,以便对我有所帮助。即使我也面临同样的问题。【参考方案2】:

使用significant-change location 服务。即使应用程序终止,它也能正常工作。

【讨论】:

我也已经这样做了,如果我在我的问题中描述的场景存在,它并没有多大帮助。 :(

以上是关于即使在应用程序被杀死后如何继续进行 iOS 位置跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

即使应用程序处于终止状态或被杀死,如何在 iOS 中获取位置更新? [复制]

即使App被IOS中的用户杀死,如何每10秒调用一次api?

为啥即使我在后台请求位置更新,我的 iOS 应用程序也会被杀死?

即使在杀死并重新启动应用程序后,如何在本机 iOS 中下载音频文件?

如何知道我的应用程序被杀死的原因

即使应用程序被杀死/终止,位置更新