Ios 当用户退出地理围栏时触发事件

Ios 当用户退出地理围栏时触发事件,ios,gps,geofencing,Ios,Gps,Geofencing,是否有办法在iOS设备的当前位置周围定义地理围栏(中心和半径),并在设备退出地理围栏时让系统在我的应用程序中触发回调函数?这个机制会唤醒一个关闭的应用程序吗 我希望避免广泛使用GPS,因此我更喜欢系统消息而不是定期GPS轮询,即使以降低精度为代价。 以下是当用户进入和退出区域时触发的委托方法 -(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { NSLog(@"Welcom

是否有办法在iOS设备的当前位置周围定义地理围栏(中心和半径),并在设备退出地理围栏时让系统在我的应用程序中触发回调函数?这个机制会唤醒一个关闭的应用程序吗

我希望避免广泛使用GPS,因此我更喜欢系统消息而不是定期GPS轮询,即使以降低精度为代价。

以下是当用户进入和退出区域时触发的委托方法

-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {
NSLog(@"Welcome to %@", region.identifier);
}


-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {
NSLog(@"Bye bye");
}

-(void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
NSLog(@"Now monitoring for %@", region.identifier);
}
你的解决方案是

在iOS中,与您的应用程序关联的区域会一直被跟踪, 包括应用程序未运行时。如果区域边界为 当应用程序未运行时,该应用程序将重新启动到 处理事件的背景。同样,如果应用程序被挂起 当事件发生时,它会被唤醒,并给予少量的时间 处理事件的时间(大约10秒)

每当应用程序请求进行区域监控时,iOS都会站出来。您的应用程序注册了一些位置,并要求iOS监控该区域,并在进入或退出该区域时准确通知as

CLRegion*region=[[CLCircularRegion alloc]initWithCenter:[位置坐标]半径:250.0标识符:[[nsuid UUID]uuistring]

现在,iOS接受此请求并将其添加到区域监控的系统队列中,并为您的应用程序添加一个内部标识。一旦设备进入该区域或退出该区域,iOS就会向应用程序发送一个通知,以启动并触发代理

-(void)locationManager:(CLLocationManager*)管理器输入区域:(CLRegion*)区域

-(void)locationManager:(CLLocationManager*)manager DidexitreRegion:(CLRegion*)区域

请注意,如果您的应用程序在后台运行,一旦设备进入/存在注册区域,iOS将使您的应用程序在后台启动


这是关于
FourSquare
和其他类似应用程序如何在短时间内执行大部分位置数据收集并将其发送到服务器并为用户提供定制消息的关键点之一。

是的,文档对此进行了详细说明!一旦设备进入地理围栏,应用程序将唤醒并调用委托方法@阿达玛坦:我已经解释过,当你的应用注册进行区域监控时,iOS在内部做什么。@BalramTiwari感谢你的详细解释!:)设想一种情况,在区域监控中不断添加用户的当前位置,半径为100米,用户在几分钟内移动该距离,退出该位置。然后,委托被激发。在委派中,您再次将用户的当前位置注册到区域监视中。您实际上正在跟踪用户。:-)我知道这个问题已经讨论很久了,但在地理围栏方面,我面临着一个问题。我选择了100米半径,应该会发出“出口时”通知。但我在250米左右收到通知。请帮帮我。