用户进入特定区域时如何获取本地通知提供的 ios
Posted
技术标签:
【中文标题】用户进入特定区域时如何获取本地通知提供的 ios【英文标题】:How to get local notification when user enters into specific region provided ios 【发布时间】:2014-05-08 07:41:04 【问题描述】:我正在从事这样一个项目,其中应用程序执行以下操作:
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]];
现在,我的问题是如何添加具有纬度和经度的特定区域以获得通知?
非常感谢您的帮助。任何人都知道任何示例或教程。
【问题讨论】:
【参考方案1】: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 */
【讨论】:
【参考方案2】:探索 iOS Core Location 框架提供的基于位置的服务。
这里有一些很好的教程。可能对你有帮助
Geofencing with Core Location Geofencing on iOS iOS Geofencing API Tutorial Using Core Location Framework【讨论】:
感谢您的回复,当前位置和获取通知对我来说工作正常。但我对如何创建具有纬度和经度的特定位置区域感到困惑。请帮帮我。 @user2704161 : 在上面的教程中,他们提到了如何添加特定区域进行监控 感谢 Rahul Patel,我已经下载了代码并运行了该代码。如果我单击添加地理围栏,则其显示区域监控不适用于此类。如何摆脱它? 我认为 regionMonitoringAvailable 在 iOS 7 中已被弃用。 请查看developer.apple.com/library/ios/documentation/CoreLocation/…【参考方案3】:1.获取用户当前位置。
我在博客和 Github 上发布了关于如何获取 iOS 7 位置的长篇文章和示例代码。
Background Location Update Programming for iOS 7
Github Project: Background Location Update Programming for 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];
【讨论】:
以上是关于用户进入特定区域时如何获取本地通知提供的 ios的主要内容,如果未能解决你的问题,请参考以下文章