如果我们尝试访问用户的位置,iOS 会告诉用户我们的应用程序想要使用他们的位置。
如果我这样做
[locationManager startUpdatingLocation];
将显示一个警报。
然而,这只会发生一次。
一旦显示弹出,看起来必须设置一些变量或默认值。
如何重置这些默认设置,以便下次我的应用程序想要使用位置时会再次询问用户?
谷歌地图可以一次又一次地显示。
如果我们尝试访问用户的位置,iOS 会告诉用户我们的应用程序想要使用他们的位置。
如果我这样做
[locationManager startUpdatingLocation];
将显示一个警报。
然而,这只会发生一次。
一旦显示弹出,看起来必须设置一些变量或默认值。
如何重置这些默认设置,以便下次我的应用程序想要使用位置时会再次询问用户?
谷歌地图可以一次又一次地显示。
它只在第一次显示,你无法改变它。您可以做的是要求您的用户在设置中允许它。
您可以通过检查来检查您的应用程序是否具有权限:
[CLLocationManager locationServicesEnabled]
从文档:
用户可以通过在一般情况下切换定位服务开关来从设置应用程序启用或禁用定位服务。
您应该在开始位置更新之前检查此方法的返回值,以确定用户是否为当前设备启用了位置服务。如果此方法返回 NO 并且您仍然开始位置更新,Core Location 框架会提示用户确认是否应重新启用位置服务。
翻译:您无法控制该部分的流程。小弹窗:
仅在您第一次请求时由 Apple 显示 - 因此用户始终感觉处于控制之中。在他们第一次接受后,Apple 假定他们同意您的应用从他们的设备获取位置信息,并且不会再次显示它*。
*除非他们专门进入设置并为您的应用禁用定位服务。