zoukankan      html  css  js  c++  java
  • iOS8中定位服务的变化(CLLocationManager协议方法不响应,无法回掉GPS方法,不出现获取权限提示)

    最近在写一个LBS的项目的时候,因为考虑到适配iOS8,就将项目迁移到Xcode6.0.1上,出现了不能正常获取定位服务权限的问题。

    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中才能进行正确的获取服务权限

    在使用高德和百度地图的时候,出现了编译错误,大致原因是因为Xcode6中默认为使用64编译造成了,如果解决,后期博文会进行更新

     
  • 相关阅读:
    20170417成员运算符、身份运算符、布尔运算符
    20170417学习find、replace、abs三个函数
    shell 双中括号 双小括号
    man 命令
    awk 命令-对文本和数据进行处理
    shell-1-day
    shell---0-day
    /etc
    Selenium IDE使用
    python 自动化测试框架 pytest 和unittest 的区别
  • 原文地址:https://www.cnblogs.com/Neo-joke/p/4018791.html
Copyright © 2011-2022 走看看