【问题标题】:How do iOS8 Changes to Location interact with Settings and Alert?iOS8 位置更改如何与设置和警报交互?
【发布时间】:2015-01-31 14:09:59
【问题描述】:

我正在将 iOS7 后台定位 iPhone 应用程序转换为 iOS8 并设法让 LocationManager 再次使用本网站上的许多建议提供坐标。

我只对requestAlwaysAuthorization 感兴趣,而不是requestWhenInUseAuthorization

但是,我无法让 iOS 提示用户允许使用位置服务,我想知道在某些情况下是否应该这样做。

有人可以回答以下问题吗:

  1. 如果我的隐私/位置服务/“我的应用”设置为“从不”,这是否会阻止应用接收 GPS 坐标,除非应用明确指示用户更改该设置? (如果隐私/位置服务/“我的应用”设置为“始终”,我似乎只会收到坐标)

  2. iOS 是否会提示用户特别授权 GPS 使用(就像以前的 iOS 版本一样)?在什么情况下?如果不是,我假设应用程序必须提出一个合适的UIAlert 来指导用户更改隐私/位置服务/设置以响应didChangeAuthorizationStatus 返回的状态:kCLAuthorizationStatusNotDetermined

  3. UIApplicationOpenSettingsURLString 可用于将用户引导至此应用的设置页面。但是,这不会显示隐私/位置服务/“我的应用”页面,如果当前设置阻止返回坐标,用户需要更改该页面。是否有其他方式以编程方式将用户直接引导至此应用的隐私/位置服务/“我的应用”页面?

非常感谢您的帮助

罗伯特

【问题讨论】:

    标签: ios iphone gps settings cllocationmanager


    【解决方案1】:
    1. 是的,一旦设置为“从不”,iOS 将不会提示用户提供权限 - 他们已经给出了答案并且答案为“否”。您可以在您的应用程序中显示警报以要求他们打开它,但如果您过于频繁地这样做会很烦人。

    2. App 首次调用requestWhenInUseAuthorization/requestAlwaysAuthorization 时会显示警报。如果他们的用户拒绝提供位置访问权限,则隐私设置设置为“从不”,您处于问题 1 中描述的情况。如果授予权限,则隐私设置设置为“使用时”或“始终”。每次您的应用程序运行时,您都应该调用requestWhenInUseAuthorization/requestAlwaysAuthorization

    3. 无法直接从您的应用打开隐私/位置设置屏幕。

    【讨论】:

    • 感谢 Paul - 我的问题提供了三个信息丰富且简洁的答案。你让我走上正轨。我缺少的是,当第一次安装应用程序时,我不得不调用 requestAlwaysAuthorization 两次 - 一次在初始化时,然后在 didChangeAuthorizationStatus 返回 kCLAuthorizationStatusNotDetermined 状态时再次显示授权警报。再次感谢...罗伯特
    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多