如何在用户区域更改时获得通知?
How to get Notification when region Changes of the user?
我正在开发必须使用区域监控的应用程序。
当用户的位置发生变化时,用户将收到有关用户现在位于新位置的位置的通知,即使应用程序处于后台。
我从最近几天开始尝试并在 Google 中搜索,但我没有找到解决方案或任何关于如何做的想法。
有没有人可以帮助我?
提前致谢。
在 CLLocationManager
的帮助下使用 geofencing 并调用 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
中实现 CLLocationManagerDelegate
的 didEnterRegion
委托方法,因为 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"];
我正在开发必须使用区域监控的应用程序。
当用户的位置发生变化时,用户将收到有关用户现在位于新位置的位置的通知,即使应用程序处于后台。
我从最近几天开始尝试并在 Google 中搜索,但我没有找到解决方案或任何关于如何做的想法。
有没有人可以帮助我?
提前致谢。
在 CLLocationManager
的帮助下使用 geofencing 并调用 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
中实现 CLLocationManagerDelegate
的 didEnterRegion
委托方法,因为 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"];