关于在 iPhone 应用程序在后台时确定关闭位置的建议

Posted

技术标签:

【中文标题】关于在 iPhone 应用程序在后台时确定关闭位置的建议【英文标题】:Advice on determining close locations while iPhone app in background 【发布时间】:2012-01-17 07:00:29 【问题描述】:

我需要一些关于基于位置的 iPhone 应用程序的建议。

我正在构建一个应用程序来通知用户附近的位置。当应用程序在前台时,它将使用正常的 didUpdateToLocation:fromLocation: 方法(计算用户和感兴趣的地方之间的距离),但是当它在后台时,我不确定什么是最好的方法。

我正在考虑在应用程序进入后台之前从所有感兴趣的地方创建 CLRegions。如果用户进入一个区域,应用程序将发出本地通知并通知用户感兴趣的地方。

或者我可以注册 CL 重大更新,计算用户与所有地点之间的距离并通知任何接近的地点。也许不是最好的解决方案,操作系统可能没有给我足够的时间来计算靠近的地方?

有没有人做过同样的事情?有什么建议吗?

【问题讨论】:

我不使用 iPhone,但从设计的角度来看,我会说当设备在后台时,你应该尽可能地保持非侵入性。您应该只对最高优先级的景点发出警告,最好只在它们在小范围内时发出警告。根据您的工作,您或许可以利用某种审查或人口普查系统来指定哪些是最重要或最热门的地点。 感谢@Polynomial 的输入,在我解决了这个问题后,这确实是一个问题:) 【参考方案1】:

我认为您应该注册重要的位置更新(小区更改事件),然后对事件进行数学计算。您可以在此事件的基础上做任何事情。根据我的经验,区域监控还依赖于小区变化事件以及一些您不需要的额外计算。

但是,您需要启用后台位置更新。为此,您需要说服 Apple 您的应用程序需要此后台定位服务。正如 Apple 文档所说,后台定位服务仅适用于提供转弯导航的应用。

如何启用后台位置更新 Understanding background tracking of user's location in ios

【讨论】:

以上是关于关于在 iPhone 应用程序在后台时确定关闭位置的建议的主要内容,如果未能解决你的问题,请参考以下文章

如何在iphone的后台获取位置[关闭]

最佳实践 - iPhone 后台应用模式

如何在后台应用程序和iphone重启时使用ibeacon[关闭]

iPhone:当用户单击主页按钮时,是不是可以关闭应用程序而不是在后台运行?

iPhone应用程序因后台定位模式而被拒绝[关闭]

苹果手机怎么设置后台运行时不自动关闭?