美文网首页iOS算法或者代码牛叉的demo
iOS 定位的第三方框架 INTULocationManager

iOS 定位的第三方框架 INTULocationManager

作者: iOS_成才录 | 来源:发表于2015-11-12 19:32 被阅读2530次

一、简介

  • 优点:
    • 该框架可以使用block接收用户的位置
    • 而corelocation框架定位使用代理进行传值-> 相比较而言corelocation框架定位代码比较分散
  • 框架存在问题
    • 此框架针对于iOS9.0 ,前台授权时,后台是无法获取用户位置
  • 使用
    • 下载框架(locationManager框架)
    • 使用block进行定位(带delayUntilAuthorized参数的定位:超时时间从什么时候开始计算)(依然要配置info.plist文件对应的键值对)
    • 通过定位请求ID分别取消定位(不会回调block)和强制完成定位(会回调block)

二、基本使用

#import "ViewController.h"
#import "INTULocationManager.h"
@interface ViewController ()

@end

@implementation ViewController



- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    INTULocationManager *locMgr = [INTULocationManager sharedInstance];
    
    // delayUntilAuthorized 超时计时从什么时候开始
    INTULocationRequestID requestID = [locMgr requestLocationWithDesiredAccuracy:INTULocationAccuracyCity
                                       timeout:3.0
                          delayUntilAuthorized:NO
                                         block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
                                             if (status == INTULocationStatusSuccess) {
                                                
                                                 NSLog(@"---%@", currentLocation);
                                                 
                                             }else
                                             {
                                                 NSLog(@"错误 %zd", status);
                                             }
                                         }];
    
    // 强制完成定位,会执行block内容
//    [[INTULocationManager sharedInstance] forceCompleteLocationRequest:requestID];
    // 取消位置请求(不会回调block)
    [[INTULocationManager sharedInstance] cancelLocationRequest:requestID];
}


- (void)subscript
{
    INTULocationManager *locMgr = [INTULocationManager sharedInstance];
    [locMgr subscribeToLocationUpdatesWithDesiredAccuracy:INTULocationAccuracyHouse
                                                    block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {
                                                        if (status == INTULocationStatusSuccess) {
                                                            NSLog(@"定位");
                                                        }
                                                        else {
                                                            NSLog(@"失败");
                                                        }
                                                    }];
}
@end

相关文章

网友评论

  • ff1f6460d9e9:一定位就超时了,,这个怎么解决呢?
    庆庆developer:请问 解决了吗
  • d920e665d3d1:大神 这个 怎么获取详细的地理位置啊
    iOS_成才录:@万军丛中一坨屎 对象里面不是包含位置信息吗
  • feng_dev:有什么三方库能获取类似 微信那种 位置列表吗,就是好多位置可以选择的那种

本文标题:iOS 定位的第三方框架 INTULocationManager

本文链接:https://www.haomeiwen.com/subject/ipvhhttx.html