首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提示用户打开Location Services...again

如何提示用户打开Location Services...again
EN

Stack Overflow用户
提问于 2011-05-14 06:41:53
回答 3查看 25.7K关注 0票数 18

我想要拥有与地图应用程序相同的功能,用户每次按下“当前位置”按钮打开他们的位置服务时,如果他们关闭了,都会得到提示:

  • 关闭位置服务
  • 用户按下'getCurrentLocation‘按钮
  • 应用程序尝试使用

get获取位置’打开位置服务...‘消息显示“设置”和“取消”按钮。

  • 用户再次点击

按下’获取当前位置‘按钮<代码>H113应用程序再次尝试使用CLLocationManager获取位置<代码>H214<代码>H115用户不再收到’打开位置服务...‘消息<代码>H216<代码>F217

在地图应用程序中,用户会看到“打开位置服务...”每次都会发信息。我怎样才能让我的应用程序做同样的事情呢?我让用户我正在使用一个新的CLLocationManager实例,以防这是问题所在,但事实并非如此。我看不到任何会影响这一点的设置。

如果我创建自己的警报,我将无法获得相同的“设置”按钮功能。另外,我不希望用户看到多个看起来相同的警报。

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2014-09-11 03:38:39

iOS 8中新增了一个名为UIApplicationOpenSettingsURLString的常量。

在UIKit下的"What's new in iOS"文档中有一行:

您可以将用户直接带到设置应用程序中与您的应用程序相关的设置。将UIApplicationOpenSettingsURLString常量传递给UIApplication类的openURL:方法。

来自苹果的documentation

UIApplicationOpenSettingsURLString

用于创建可传递给openURL:方法的URL。当您打开基于此字符串构建的URL时,系统将启动设置应用程序并显示应用程序的自定义设置(如果有)。

您可以将其传递给UIApplication openURL:方法。它可能看起来像这样:

代码语言:javascript
复制
NSURL *settings = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

if ([[UIApplication sharedApplication] canOpenURL:settings])
    [[UIApplication sharedApplication] openURL:settings];
票数 22
EN

Stack Overflow用户

发布于 2012-02-13 07:25:23

如果你想让用户返回设置应用程序中的定位服务屏幕,你可以通过将他们发送到一个特殊的URL来实现,如下所示:

代码语言:javascript
复制
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"prefs:root=LOCATION_SERVICES"]];
票数 19
EN

Stack Overflow用户

发布于 2011-05-14 06:59:04

如果开启了定位服务,您可以查询共享CLLocationManager实例。正确的做法是尊重用户的选择,关闭位置服务。

但如果你愿意,只要启动定位服务,用户就会被提示再次启动它。如果用户选择加入请求,您的代表将照常开始报告位置。相反,如果用户拒绝您的请求,您将收到locationManager:didFailWithError:委托方法的失败回调。该错误的错误代码为kCLErrorDenied

我强烈建议您不要这样做,但如果用户拒绝,您可以尝试再次启动该服务,系统会再次询问该用户。不过,大多数用户会因此而讨厌你。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5998465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档