使用
组件介绍
TMF 定位 SDK 可以让您轻松使用定位服务,构建 LBS 应用程序。基于强大的 CoreLocation
系统库,能够使用 Wi-Fi,蜂窝数据等多种方式进行位置确认。
单次定位
权限相关
定位功能需要开启权限后才能使用。
/*
@brief 查看当前定位服务是否可用(系统定位开关)
*/
+ (BOOL)locationServicesEnabled;
/*
@brief 是否允许App使用定位服务(App定位开关、并且已授权,不受家长控制等)
*/
+ (BOOL)authorizationStatusAuthorized; // NotDetermined = NO
+ (BOOL)authorizationStatusAllowed; // NotDetermined = YES
定位回调协议
/*
@brief 定位信息正常返回时的回调方法
*/
- (void)TMFLocationManager:(TMFLocationManager *)locationManager didFinishWithLocation:(CLLocation *)location;
/*
@brief 定位失败的回调方法
*/
- (void)TMFLocationManager:(TMFLocationManager *)locationManager didFailWithError:(NSError *)error;
定位功能使用与停止
/**
* 开始请求定位
*/
- (void)startRequestLocation;
/**
* 停止请求定位
*/
- (void)stopRequestLocation;
调用示例
self.locationManager = [[TMFLocationManager alloc] init];
self.locationManager.locationDelegate = self;
[self.locationManager startRequestLocation];
实时定位
请求实时定位
/**
* 请求实时定位
* @param successHandler 请求成功回调
* @param failureHandler 请求失败回调
* @return 请求的唯一标识,用于 `-cancelRequest:`
*/
- (TMFLocationRequestIdentifier)requestLocationWithSuccessHandler:(nullable TMFLocationSuccessHandler)successHandler failureHandler:(nullable TMFLocationFailureHandler)failureHandler;
/**
* 请求实时定位
* @param cacheOptions 缓存设置
* @param successHandler 请求成功回调
* @param failureHandler 请求失败回调
* @return 请求的唯一标识,用于 `-cancelRequest:`
*/
- (TMFLocationRequestIdentifier)requestLocationWithCacheOptions:(nullable TMFLocationCacheOptions *)cacheOptions successHandler:(nullable TMFLocationSuccessHandler)successHandler failureHandler:(nullable TMFLocationFailureHandler)failureHandler;
参数名 | 类型 | 说明 |
---|---|---|
cacheOptions | TMFLocationCacheOptions | 设置缓存的清理时间,默认5分钟 |
successHandler | TMFLocationSuccessHandler | 位置信息成功返回回调 |
failureHandler | TMFLocationFailureHandler | 位置信息失败返回回调 |
调用示例
[[TMFLocationCenter sharedCenter] requestLocationWithSuccessHandler:^(CLLocation * _Nonnull location) {
// 成功返回位置信息
} failureHandler:^(NSError * _Nonnull error) {
// 失败回调
}]
取消定位
- (void)cancelRequest:(TMFLocationRequestIdentifier)identifier;
清理缓存定位
- (nullable CLLocation *)fetchCachedLocationWithOptions:(TMFLocationCacheOptions *)cacheOptions;