iOS8下的定位问题及解决方案

问题


在iOS8之前,app第一次开始定位服务时,系统会弹出一个提示框来让用户选择是否允许使用定位信息。但iOS8后,app将不会出现这个弹窗。第一次运行之后,在�设置->隐私->定位服务中,你的app没有任何设置,既不是“永不”,也不是“始终”。

解决方案


以上代码在iOS8之后需要手动调用CLLocationManager对象的requestAlwaysAuthorization/requestWhenInUseAuthorization方法。 调用该方法需要在Info.plist中设置NSLocationAlwaysUsageDescription/NSLocationWhenInUseUsageDescription的值。

代码如下:

- (void)viewDidLoad{
    [super viewDidLoad];
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    manager.delegate = self;
    [manager requestAlwaysAuthorization];
    manager.desiredAccuracy = kCLLocationAccuracyBest;
    [manager startUpdatingLocation];
}

info.plist设置如下:


info.plist
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容