我一直试图在设备进入我设置的半径区域时设置警报。但是,当我启动该应用程序时,它并不是第一次打电话,甚至当我离开该区域并重新进入时也是如此。没被叫。
我已启用后台应用刷新。
我已在Info.plist中将背景状态设置为“是”。
我还添加了使用时的位置,并且始终在Info.plist中
这是为了提醒我通过地图设置的位置。当我进入该区域时,我会在该位置设置一个本地通知以提醒我。
- (void) createLocationManager
{
self.locationManager = [ [ CLLocationManager alloc ] init ];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 10;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
if( [self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
{
[ self.locationManager requestAlwaysAuthorization ];
}
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[ self.locationManager requestAlwaysAuthorization ];
}
NSSet* monitorSet = self.locationManager.monitoredRegions;
NSLog(@"Monitored Regions %@", monitorSet );
[ self startMonitor ];
}
我将纬度和经度设置为当前位置,以便可以通过该区域的进出进行测试
- (void) startMonitor
{
double latitude = self.locationManager.location.coordinate.longitude;
double longitude = self.locationManager.location.coordinate.latitude;
CLCircularRegion *circularRegion = [ [ CLCircularRegion alloc ] initWithCenter:CLLocationCoordinate2DMake(latitude, longitude)
radius:100
identifier:@"1526023958.1528539973.152853997A" ];
[ self.locationManager requestStateForRegion:circularRegion];
[ self.locationManager startMonitoringForRegion:circularRegion ];
}
此委托方法不起作用。我在此方法内没有任何反应。
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
[ self showAlert ];
}