区域监听

  • 区域顾名思义是一个指定的区域,对其进行监听。先普及一下一点知识
区域监听_第1张图片
经纬度的基本知识

前提:加载一张指南针图片,其他的#import 框架都需要导入,以及定位管理对象,挂代理,遵守协议,利用对象来调用 startMonitoringForRegion:(nonnull CLRegion *),然后在对其设置

-下面是具体的代码

#import "ViewController.h"
#import 

@interface ViewController ()
@property(nonatomic,strong)CLLocationManager *locationManager;

@end

@implementation ViewController

//1.创建管理者对象  懒加载

-(CLLocationManager *)locationManager
{
  if (!_locationManager) {
    
    _locationManager = [[CLLocationManager alloc]init];
}

return _locationManager;
}


- (void)viewDidLoad {
[super viewDidLoad];

//2.挂代理,遵守协议

self.locationManager.delegate = self;

//注意:如果是ios8,想进入区域检测,必须自己主动请求获取用户隐私的权限
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) {
    
    //4.主动要求用户对我们的程序授权,授权状态改变就会通知代理status
    [self.locationManager requestAlwaysAuthorization];
    
}else
{
    NSLog(@"不是ios8");
}

//3.开始检测用户所在的区域(后面给一个区域)
//3.1.创建区域

//CLRegion有两个子类是专门用来指定区域的,一个可以指定蓝牙的范围,一个可以用来指定圆形的范围
//创建我们的中心点
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.058501, 116.304171);

CLCircularRegion *circular = [[CLCircularRegion alloc]initWithCenter:center radius:500 identifier:@"软件园"];

[self.locationManager startMonitoringForRegion:circular];

}

 #pragma mark -CLLocationMangerDelegate  代理方法的调用

//进入一个区域
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{

NSLog(@"进入监听区域");

}
//离开区域时调用
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{

NSLog(@"离开监听区域");

}

@end

你可能感兴趣的:(区域监听)