基于地理位置的本地通知

时间:2014-04-29 13:39:57

标签: ios geolocation notifications mkmapview local

我的项目包含一个mapView,其中的对象放置在不同位置的引脚上。

当用户进入其中一个引脚的区域时,我希望触发本地通知,告诉用户他靠近该特定对象。我已经看了一下文档,但我似乎无法解决这个问题。

如果您想查看,我已发布了我的代码here

1 个答案:

答案 0 :(得分:0)

MKMapView擅长显示用户的位置,但您需要使用CoreLocation来确定用户是否进入特定区域。特别是,您需要查看-startMonitoringForRegion:类的CLLocationManager方法。您应该从-locationManager:didEnterRegion:实施CLLocationManagerDelegate委托方法并从那里激发您的本地通知。

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self; 

// Create a region centered around a map pin
// You'll need to do this for every pin region you wish to monitor
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:pinCenter 
                                                           radius:regionRadius 
                                                       identifier:yourRegionIdentifier]; 
[self.locationManager startMonitoringForRegion:region];

.
.
.

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody = @"You entered a region"; 
    notification.soundName = UILocalNotificationDefaultSoundName; 
    [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}