为什么requestWhenInUseAuthorization不提示用户访问该位置?
在我的viewDidLoad
方法中
locationManager = [[CLLocationManager alloc]init]; // initializing locationManager locationManager.delegate = self; // we set the delegate of locationManager to self. locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [locationManager requestWhenInUseAuthorization]; }
和请求被调用,但用户不会提示? 为什么?
你可能需要更新你的plist
文件。 这里有一个教程如何做到这一点 ,快速和脏:
您需要做的是将以下密钥之一添加到Info.plist文件中:
NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription
您还需要请求相应的位置方法, WhenInUse
或Background
授权。 使用这些调用之一:
[self.locationManager requestWhenInUseAuthorization] [self.locationManager requestAlwaysAuthorization]
还有一个post,我发现有帮助:
位置服务不适用于iOS 8
这个答案详细说明如何更新你的plist
文件 :
将以下行添加到您的info.plist
<key>NSLocationWhenInUseUsageDescription</key> <string>The spirit of stack overflow is coders helping coders</string> <key>NSLocationAlwaysUsageDescription</key> <string>I have learned more on stack overflow than anything else</string>
在发送代码之前,您可能需要定制并拼写检查info.plist文件中的字典条目的string。