【问题标题】:Prevent Location blue bar in ios 11防止ios 11中的位置蓝条
【发布时间】:2018-07-31 16:53:19
【问题描述】:

正如您已经听说的那样,在 iOS11 中,每当授权设置为“使用时”时,主动接收持续后台更新的应用将显示一个双倍高度的蓝色条。如果应用程序正在使用后台位置应用程序,似乎无法删除蓝条。 我的应用支持 ios 9.0 及更高版本,并且我已经添加了 info.plist 中所需的所有键,包括以下键。

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string></string>

但似乎每个人都说在后台位置更新工作时无法移除蓝条。

但是我已经安装了 UBER 并且不知何故他们设法在应用程序处于后台时隐藏了蓝条,但在我的应用程序中,当我将应用程序置于后台时我可以看到蓝条。

当我们在“使用应用程序时”设置权限时,有人知道在 iOS11 中消除蓝条的任何解决方案吗?

【问题讨论】:

  • 可能是uber在ios11之前发布了这个概念,现在苹果修改了这个功能
  • 如果您只有“使用时”权限,那么您应该在应用移至后台时暂停位置更新。
  • @Paulw11 我已经尝试过您的建议,并且有效。但是,如果我们进入设置应用程序并始终更改模式-> 使用时会出现蓝条,直到我们打开应用程序。 UBER 也处理这个问题,当我们在 UBER 中做同样的事情时没有蓝条
  • 如果您的应用在后台并且只有“使用时”,您是否实现了didChangeAuthorization 委托方法以禁用位置更新?
  • 是的,我已经实现了委托方法,当应用程序进入后台时,我停止了位置更新。当在前台时,我开始位置更新。但是,如果我从设置应用程序更改位置设置,我会得到蓝条。但是,我从未在 uber 应用程序中看到具有“使用应用程序时”位置权限的蓝条。

标签: ios core-location ios11


【解决方案1】:

在 iOS 11 中,当始终授权的应用选择显示蓝条时,它会出现蓝条,同时它正在通过 startUpdatingLocation() 主动接收持续的后台位置更新

CLLocationManager 上有一个新属性,始终授权的应用可以使用它来控制其蓝条的可见性。

@property(assign, nonatomic) BOOL showsBackgroundLocationIndicator

使用中的授权应用将继续像以前一样显示蓝条。

没有其他服务会打开蓝条。当使用任何其他位置服务的应用收到偶尔的更新(例如重大位置更改)时,状态栏上的位置箭头会短暂闪烁,但不会出现蓝条。

【讨论】:

  • 我已经将此@property(assign, nonatomic) BOOL showsBackgroundLocationIndicator 设置为false
  • 在使用应用权限时如何在后台获取位置更新?
【解决方案2】:

根据苹果的说法,在 iOS 11 更新后,当应用程序在后台运行时会显示蓝条。您可以做的是,当应用程序处于前台时跟踪用户位置。 Check this

【讨论】:

    【解决方案3】:

    尝试在info.plist 文件中使用NSLocationAlwaysUsageDescription 并在CLLocationManager 中使用requestAlwaysAuthorization

    showsBackgroundLocationIndicatorrequestAlwaysAuthorization 很有用。

    【讨论】:

    • 和你说的一样,但是 ios 11 似乎在使用时自动显示并且总是在警报选项
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2012-08-04
    • 2018-04-13
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多