定位的第三方框架 LocationManager

来源:互联网 发布:警官证在淘宝上怎么搜 编辑:程序博客网 时间:2024/06/06 08:55
https://github.com/intuit/LocationManager
  > 优点:可以使用block接收用户的位置,corelocation框架定位使用代理进行传值,代码比较分散
  》下载框架(locationManager框架)
  》使用block进行定位(带delayUntilAuthorized参数的定位:超时时间从什么时候开始计算)(依然要配置info.plist文件对应的键值对)
  》通过定位请求ID分别取消定位(不会回调block)和强制完成定位(会回调block)


  > 注意:此框架针对于iOS9.0 ,前台授权时,后台是无法获取用户位置

////  ViewController.m#import "ViewController.h"#import "INTULocationManager.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.}- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{    INTULocationManager *locMgr = [INTULocationManager sharedInstance];    [locMgr requestLocationWithDesiredAccuracy:INTULocationAccuracyCity                                       timeout:5.0                          delayUntilAuthorized:YES                                         block:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {                                             if (status == INTULocationStatusSuccess) {                                                 NSLog(@"%@", currentLocation);                                             }                                             else                                             {                                                 NSLog(@"cuowu--%zd", status);                                             }                                         }];////    INTULocationManager *locMgr = [INTULocationManager sharedInstance];//    INTULocationRequestID requestID =  [locMgr subscribeToLocationUpdatesWithBlock:^(CLLocation *currentLocation, INTULocationAccuracy achievedAccuracy, INTULocationStatus status) {//        if (status == INTULocationStatusSuccess) {//            NSLog(@"%@", currentLocation);//        }//        else//        {//            NSLog(@"cuowu--%zd", status);//        }//    }];            // Force the request to complete early, like a manual timeout (will execute the block)//    [[INTULocationManager sharedInstance] forceCompleteLocationRequest:requestID];        // Cancel the request (won't execute the block)//    [[INTULocationManager sharedInstance] cancelLocationRequest:requestID];}@end


0 0