在我的应用中,每当应用变为活动状态时,我都会更新用户位置。收到更新后的位置或CLLocationManager
后,我会停止applicationWillResignActive:
。
在Info.plist
中有一个NSLocationWhenInUseUsageDescription
,其中包含适当的说明。
如果应用已激活,然后立即移至后台,则会显示“%MyApp%正在使用您的位置”的蓝色横幅显示不到一秒钟。一旦调用applicationWillResignActive:
,该横幅就会被隐藏。
我在Google地图中发现了同样的问题,但在Apple地图中却没有。
有没有办法完全摆脱这个横幅?我还有什么办法让iOS开心吗?我不希望它吓坏我的用户并阻止他们使用需要定位的酷炫功能。
答案 0 :(得分:12)
您可能已在info.plist中将位置设置为后台模式。如果删除它,则蓝色条不再出现。
或者,您可以在requestAlwaysAuthorization
上使用requestWhenInUseAuthorization
代替CLLocationManager
(并在info.plist文件中提供相关的NSLocationAlwaysUsageDescription
),然后它就不会出现无论是。
在我的情况下,我的应用程序在某些情况下在后台使用位置,我希望在这种情况下出现蓝色条。但我不希望它退出应用程序时没有位置在后台。据我所知,这是不可能实现的(我已经问过here)。
编辑:请注意,从iOS-9开始,您可以确保仅当用户确实希望应用在后台使用该位置时才会显示蓝条。见this answer。
答案 1 :(得分:-3)
如果您希望使用CLLocationManager
访问用户的位置,则应用需要显示该横幅,并且用户需要按“允许”。如果他们不这样做,您的位置管理员将无法检测到用户的位置。
Apple的地图是一个特例,因为它是第一方应用程序。