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
产生一下内容