【问题标题】:Difference between "Always" and "While Using App" in location services for iOSiOS定位服务中“始终”和“使用应用程序时”的区别
【发布时间】:2019-06-18 13:36:28
【问题描述】:

我对定位服务中的选项感到困惑。这三个选项是“始终”、“从不”和“使用应用程序时”。

最初我认为“使用应用程序时”是指在前台使用应用程序时。

“始终”表示在前台或后台使用它。

但是这个document

某些应用只会在应用使用时要求使用您的位置。 当您在 前台,或者当它在后台使用时,哪个状态 条将指示。

其他应用会要求访问您的位置,即使该应用 未使用。当您允许应用始终使用您的位置时,iOS 会在某个应用之后提醒您哪些应用可以使用您的位置 在后台使用您的位置。

令人困惑。那么“Always”和“While Using the App”有什么区别呢?

【问题讨论】:

    标签: ios


    【解决方案1】:

    AlwaysWhen-in-use 之间的主要区别是:如果您使用后者并且您的应用程序被杀死(由用户或操作系统),那么您的应用程序将停止接收 CoreLocation 服务更新。只要您的应用程序在前台和后台(假设您启用了后台定位功能),它就只会接收更新。即使应用程序不在内存中,前一个权限也会启动您的应用程序。

    您可以阅读更多on this developer documentation page。以下是 Apple 开发者文档的摘录:

    使用时授权。您的应用可以使用大多数服务,但不能使用自动重新启动应用的服务。您的应用程序必须始终在前台运行时启动服务。如果您为应用启用后台定位功能,暂停的应用将在后台唤醒以处理定位事件。但是,如果您的应用未运行,则不会启动。

    始终授权。您的应用可以使用所有位置服务,并且可以从前台或后台启动这些服务。如果在您的应用未运行时发生与位置相关的事件,系统会启动您的应用并传递该事件。

    【讨论】:

      【解决方案2】:

      使用时授权:

      当我们需要访问位置时使用这种类型的授权 仅在后台和前台模式下。 (与许多电子商务应用一样的基于位置的建议应用)

      此类授权仅支持标准位置服务, iBeacon 测距、航向服务、地理编码服务。

      当应用程序使用我们的位置时显示蓝条。

      始终授权:

      当我们需要访问位置时使用这种类型的授权 在后台、前台、Kill 和暂停状态。 (跟踪应用,如FitbitCapchur

      这种类型的授权支持所有类型的位置服务,例如标准位置服务, iBeacon 测距、航向服务、地理编码服务、 重大变化的位置服务、访问服务和区域 监控。

      当应用程序使用时,仅在状态栏中显示小的位置服务箭头 我们的位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-10
        • 2019-09-08
        • 2012-05-23
        • 2011-06-10
        • 2013-02-03
        • 2014-10-17
        • 1970-01-01
        • 2012-05-23
        相关资源
        最近更新 更多