首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLBeaconRegion未从终端调用didEnterRegion

CLBeaconRegion未从终端调用didEnterRegion
EN

Stack Overflow用户
提问于 2013-10-23 07:22:41
回答 4查看 2K关注 0票数 5

我一直在读一些关于CLBeaconRegion的文章,我已经成功地设置了一些iBeacons,并让它触发位置更新,即使应用程序在后台也是如此。

然而,根据我从CLRegion读到的东西,我了解到在应用程序终止后应该可以访问locationManager:didEnterRegion:

我已经这样设置了我的CLBeaconRegion

代码语言:javascript
复制
beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:SERVICE_UUID]
                                                       major:0
                                                       minor:0
                                                  identifier:BEACON_ID];
[beaconRegion setNotifyOnEntry:YES];
[beaconRegion setNotifyOnExit:YES];
[beaconRegion setNotifyEntryStateOnDisplay:YES];

但我无法触发CLLocationManager的代理终止。我已经离开了区域(通过通知确认),离开了信标,等待了30秒,然后又回到了信标,但它在终止时不会触发代理(在后台和前台工作得很好)。

这应该从终止开始工作吗?我是不是遗漏了什么?任何帮助都是最好的。

EN

回答 4

Stack Overflow用户

发布于 2013-10-23 08:51:31

我相信当你在后台或者没有运行的时候,它会调用locationManager:didDetermineState:forRegion:而不是locationManager:didEnterRegion:,而且只有当你将notifyEntryStateOnDisplay设置为TRUE时才会调用。

票数 4
EN

Stack Overflow用户

发布于 2013-10-30 06:20:56

EDIT:从7.1开始,以下内容不再适用。即使应用程序已关闭,您仍可以接收通知

在应用程序切换器中被刷走的应用程序的行为现在具有您在iOS 7下描述的效果。

从切换器中删除您的应用程序的用户已决定不允许您的应用程序在后台运行。因此,地域监控不会重新打开您的应用程序。

有关更多信息,请查看WWDC 2013的“多任务新增功能”会议。

票数 1
EN

Stack Overflow用户

发布于 2014-03-29 00:01:53

这是iOS 7上的预期行为。但是,在iOS 7.1中,此行为已更改。iOS 7.1将委派调用恢复到iOS7之前的行为。

我在我的一篇博客文章中记录了这种行为。

http://www.simplymadeapps.com/blog/2014/03/7-1-brings-back-geofence-behavior/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19530063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档