最近遇到在iOS8 中使用定位服务,不出现获取权限提示问题
查了一些资料,给大家分享一下
self.manger = [[CLLocationManager alloc]init]; self.manger.distanceFilter = kCLDistanceFilterNone; // meters self.manger.delegate = self; [self.manger requestAlwaysAuthorization]; self.manger.desiredAccuracy = kCLLocationAccuracyBestForNavigation; [self.manger startUpdatingLocation];
以上是iOS8之前的调用方法,当用户开启App的时候,会主动询问是否允许开启定位服务权限,现在在iOS8中,无论是模拟器还是真机,都不进行提示,经过一番查阅官方文档-->LocationAwarenessPGIntroduction 发现,Apple在iOS8中加强了隐私访问权限的控制,必须调用新的方法来获取用户的允许
[self.manager requestWhenInUseAuthorization];
并且在info.plist文件中增加
NSLocationWhenInUseUsageDescription BOOL YES
NSLocationAlwaysUsageDescription string “提示描述”
两个字段,在iOS8中才能进行正确的获取服务权限