【问题标题】:iOS 8 not requesting Location permissioniOS 8 不请求位置权限
【发布时间】:2014-11-17 23:06:26
【问题描述】:

我的应用在第一个 ViewController 中有一个地图。在 iOS 7 上,它会在第一次运行时立即自动显示位置权限弹出窗口。但是,在 iOS 8 上,需要进行一些更改。我已将密钥 NSLocationWhenInUseUsageDescription 包含到我的 Info.plist 文件中,并在 AppDelegate 中添加了:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // ...

  if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    [locationManager requestWhenInUseAuthorization];
  }

  // ...
}

然而,弹出窗口从未显示。

UI 有一个按钮,可以将地图带回用户的位置。在按钮的方法中,我包含了与上面相同的代码,看看它是否有帮助。
这次弹出窗口确实出现了,但它只是在屏幕上闪烁,用户无法与之交互。

在设置 > 隐私 > 定位服务 > MyApp 上,我期望有两个选项:从不和在使用应用程序时。默认情况下,它们都没有标记。另外,我在 Info.plist 中设置的“应用说明”在第二个选项中正确显示。

如果我强制标记第二个选项,应用程序可以正常运行,但我不希望用户手动浏览选项以启用它。

【问题讨论】:

    标签: ios8 cllocationmanager


    【解决方案1】:

    尝试转到设置 -> 常规 -> 重置 -> 重置所有设置。帮助了一些人。

    【讨论】:

      【解决方案2】:

      [CLLocationManager authorizationStatus] 是否返回 0 (kCLAuthorizationStatusNotDetermined)?因为我读到here 有时会返回nil

      你应该尝试改变你的比较。

      【讨论】:

        猜你喜欢
        • 2015-12-07
        • 1970-01-01
        • 2022-08-02
        • 2016-09-17
        • 1970-01-01
        • 2014-08-21
        • 2020-08-24
        • 2018-07-29
        相关资源
        最近更新 更多