iOS8.0之前(不含)

前台定位设置

  • 系统自动弹出对话框让用户授权
  • 通过在Info.plist中添加Privacy - Location Usage Description(对应的真实的key为NSLocationUsageDescription)来说明定位目的
  • 为了确保提高授权率,说明文字一定要写好
  • 导入头文件#import <CoreLocation/CoreLocation.h>
  • CoreLocation框架中所有数据类型的前缀都是CL
  • 使用CLLocationManager对象来管理定位相关功能
  • 开始更新用户位置
      - (void)startUpdatingLocation;
    
  • 停止更新用户位置
      - (void) stopUpdatingLocation;
    
  • CLLocationManager中常用属性和方法

      // 判断当前应用的定位功能【是否可用】
      + (BOOL)locationServicesEnabled;
    
      // 每隔多少米定位一次
      @property(assign, nonatomic) CLLocationDistance distanceFilter;
    
      // 枚举类型,用于指定定位精确度(定位越精确就越耗电)
      @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;
    
  • CLLocation中常用属性和方法

      // 经纬度
      @property(readonly, nonatomic) CLLocationCoordinate2D coordinate;
    
      // 海拔
      @property(readonly, nonatomic) CLLocationDistance altitude;
    
      // 路线,航向(取值范围是0.0° ~ 359.9°,0.0°代表真北方向)
      @property(readonly, nonatomic) CLLocationDirection course;
    
      // 移动速度(单位是m/s)
      @property(readonly, nonatomic) CLLocationSpeed speed;
    
      // 对象方法,计算2个位置之间的距离
      - (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
    
  • CLLocationManagerDelegate常用代理方法(待续

    
    
    

后台定位设置

  • 默认只能在前台获取用户位置
  • 如果要支持后台模式,必须勾选Location updates,设置方式:Targets --> Capabilities --> Background Modes --> Location updates,如图
  • 会在Info.plist产生一下内容

results matching ""

    No results matching ""