蓝色横幅“%MyApp%正在使用您的位置”仅适用于在活动状态下使用位置服务的应用

在我的应用程序中,每当应用程序变为活动状态时,我都更新用户位 一旦收到更新的位置,或者在applicationWillResignActive:我停止CLLocationManager 。 在Info.plist有一个NSLocationWhenInUseUsageDescription有适当的描述。

如果应用程序被激活,然后立即移动到后台,蓝色的横幅说'%MyApp%使用您的位置'出现不到一秒钟。 这个横幅一旦被隐藏applicationWillResignActive:被调用。

我注意到了Google地图中的相同问题,但在Apple Maps中却没有。

有没有办法彻底摆脱这个旗帜? 还有什么我应该做的,使iOS快乐? 我不希望它吓坏我的用户,并阻止他们使用需要位置的酷炫function。

您可能已经在info.plist中将位置设置为背景模式 。 如果你删除,那么蓝色的条不会再出现。

或者,您可以使用requestAlwaysAuthorization而不是CLLocationManager上的requestWhenInUseAuthorization (并在info.plist文件中提供相关的NSLocationAlwaysUsageDescription ),然后它也不会出现。

在我的情况下,我的应用程序在某些情况下在背景中使用位置,并且我希望在这种情况下出现蓝条。 但是,我不希望它出现在应用程序没有在后台位置时出现。 据我所知,这是不可能实现的(我在这里问过)。

编辑 :请注意,从iOS-9开始,您可以确保只有当用户实际上希望应用程序在后台使用该位置时才显示蓝条。 看到这个答案 。

如果您想通过CLLocationManager访问用户的位置,应用程序将需要显示该横幅,用户将需要按“允许”。 如果他们不这样做,您的位置pipe理器将无法检测到用户的位置。

苹果的地图是一个特例,因为它是一个第一方应用程序。