如何在区域更改用户时获取通知?

时间:2016-10-10 04:36:11

标签: ios objective-c geofencing region-monitoring

我正在处理必须使用区域监控的应用程序。
当用户的位置根据用户将获得有关用户现在位于新位置的位置的通知时,即使申请在后台。

我正在尝试从最近几天在谷歌搜索,但我找不到解决方案或任何想法,如何做。
这里有人可以帮助我吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

CLLocationManager的帮助下使用地理围栏并致电startMonitoringForRegion

制作这样的函数并开始监视区域

-(void)notificationForRegion:(CLLocationDegrees) latitude withLongitude:(CLLocationDegrees) longitude andIdentifier : (NSString*) identifer {
    CLLocationManager * locationManager = [[CLLocationManager alloc] init];
    CLCircularRegion * regionForMonitoring = [[CLCircularRegion alloc] initWithCenter:CLLocationCoordinate2DMake(latitude, longitude) radius:50.0 identifier:identifer];
    regionForMonitoring.notifyOnExit = TRUE;
    [locationManager startMonitoringForRegion:regionForMonitoring];
}

didEnterRegionCLLocationManagerDelegate实施AppDelegate委托方法,AppDelegate对象始终保留在内存中,并在此处安排本地通知。

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {
    UILocalNotification * localNotif = [[UILocalNotification alloc] init];
    localNotif.alertBody = @"You are now in the region";
    localNotif.fireDate = [NSDate dateWithTimeIntervalSinceNow:0];
    localNotif.soundName = UILocalNotificationDefaultSoundName;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
    [manager stopMonitoringForRegion:region];  
}

按以下步骤调用上述notificationForRegion功能

获取location

[self notificationForRegion:location.coordinate.latitude withLongitude:location.coordinate.longitude andIdentifier:@"your identifier"];