我正在开展这样一个应用程序执行以下操作的项目:
1.获取用户当前位置。 2.当用户进入或附近我提供的特定位置时,获取本地通知。
我所做的是:
我已经下载了区域示例代码(提供的苹果),以便使用IOS搭配框架找出我当前的位置。它工作正常。下面是代码:
//根据地图视图的中心创建一个新区域。
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(regionsMapView.centerCoordinate.latitude, regionsMapView.centerCoordinate.longitude);
CLRegion *newRegion = [[CLRegion alloc] initCircularRegionWithCenter:coord radius:2.0 identifier:[NSString stringWithFormat:@"%f, %f", regionsMapView.centerCoordinate.latitude, regionsMapView.centerCoordinate.longitude]];
现在,我的问题是如何添加纬度和范围的特定区域。经度得到通知?
非常感谢帮助。任何人都知道任何示例或教程。
答案 0 :(得分:2)
SetSDK应该有助于实现这一目标,https://cocoapods.org/pods/SetSDK。它允许您设置用户到达和离开位置的通知。它目前正在动态学习这些位置,但有一个即将发布的版本包括任意位置订阅。您的应用程序将收到通知,您可以从那里执行任何您想要的处理程序。它看起来像这样,
SetSDK.instance.onArrival(to: .any) { newArrival in
/* Compare the new location with the one of interest (50m) */
if newArrival.location.distance(from: placeOfInterest) < 50 {
/* do your things here */
}
}
答案 1 :(得分:1)
探索iOS核心位置框架提供的基于位置的服务。
这里有一些很好的教程。它可能会帮助你
答案 2 :(得分:0)
1.获取用户当前位置。
我在博客和Github上发布了有关如何获取iOS 7位置的冗长帖子和示例代码。
<强> 2。当用户进入或附近我提供的特定位置时,获取本地通知。
您必须使用 startMonitoringForRegion 来监控您创建的区域。
CLLocationCoordinate2D regionCentre = CLLocationCoordinate2DMake(latitude, longitude);
CLCircularRegion *region= [[CLCircularRegion alloc] initWithCenter:regionCentre radius:radius identifier:@"Name"];
[locationManager startMonitoringForRegion:region];
从locationManager委托中,您将在进入该区域时收到通知。
-(void)locationManager:(CLLocationManager *)manager
didEnterRegion:(CLRegion *)region{
NSString* message = [NSString stringWithFormat:@"Message";
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = [NSDate date];
NSTimeZone* timezone = [NSTimeZone defaultTimeZone];
notification.timeZone = timezone;
notification.alertBody = message;
notification.alertAction = @"Show";
notification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
}