如何在不需要的屏幕上隐藏 iOS 应用程序中的位置图标?
Posted
技术标签:
【中文标题】如何在不需要的屏幕上隐藏 iOS 应用程序中的位置图标?【英文标题】:How to hide Location icon in an iOS app on screens that do not require it? 【发布时间】:2016-11-30 10:44:52 【问题描述】:我正在使用 Xamarin.ios 开发一个 iOS 应用程序。 我已授予使用定位服务的权限,只要应用程序正在运行,定位图标就会在状态栏中可见。 但是,我的应用需要仅在一个屏幕上获取当前位置 - 其余时间位置不需要。
是否可以关闭(隐藏)位置图标当应用程序没有真正使用时?
我找到的答案适用于旧 iOS 版本或适用于越狱手机。据我了解,Apple 现在正在阻止这种情况。如果这是否可能,我将不胜感激。或者如果可能的话 - 一些 Xamarin / Objective-C /Swift 示例会很棒。
【问题讨论】:
请分享您获取位置的代码。 你可以查看这个链接:***.com/questions/26528831/…它会帮助你 位置图标显示系统上的应用何时使用位置或最近使用位置。你无法隐藏它。 【参考方案1】:你是指状态栏中的飞机图标吗?
这个ICON会在APP使用定位服务时显示,尝试停止或移除你的定位请求或mapView,你的地图SDK有自己的界面,比如:
locationManager = [[CLLocationManager alloc]init];
[locationManager stopUpdatingLocation];
并确保其他APP没有使用定位服务。
但它不确定服务会立即停止,位置管理器只是系统的监视器。
【讨论】:
不过,它是箭而不是飞机。 我将此标记为已接受的答案。我最终在所有屏幕上添加了 [locationManager stopUpdatingLocation],并在我需要的一个屏幕上添加了 [locationManager startUpdatingLocation]。这一点,加上将 requestWhenInUseAuthorization 添加到 info.plist 似乎已经奏效。实际上,位置图标消失之前需要几秒钟,但这比一直看到它要好得多。谢谢!【参考方案2】:您可以在 CLLocationManager 上使用 requestAlwaysAuthorization 而不是 requestWhenInUseAuthorization。
注意:提供相关的 NSLocationAlwaysUsageDescription 在 info.plist 文件,然后蓝色横幅将不会显示。
【讨论】:
以上是关于如何在不需要的屏幕上隐藏 iOS 应用程序中的位置图标?的主要内容,如果未能解决你的问题,请参考以下文章
当活动屏幕首次在 Android Studio 上加载时,如何在隐藏的背景中发送带有当前位置数据的 SMS 文本消息?
如何在 iOS 7 的 UISearchBar 中更改位置或隐藏放大镜图标?