即使在应用程序被杀死后如何继续进行 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 应用程序也会被杀死?