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



我正在研究必须使用区域监控的应用程序。
当用户的位置发生变化时,用户将获得关于用户现在在新位置的位置通知,即使应用程序在后台。

我试图从过去的几天,在谷歌搜索,但我没有找到解决方案或任何想法,该如何做。这里有人能帮我吗?

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];
}

AppDelegate中实现CLLocationManagerDelegatedidEnterRegion委托方法,因为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"];

相关内容

  • 没有找到相关文章

最新更新