我正在实施基于通知的ibeacon应用。我想要做的是与视频(https://www.youtube.com/watch?v=SrsHBjzt2E8)完全相同。用户从Appstore下载应用程序,看一看然后将其推送到后台。假设用户在家做了整件事。稍后,当应用程序处于后台模式时,用户会在安装的ibeacon商店周围走动。我的预期是该应用会自动检测ibeacon设备并获得通知。但是,区域测距和监测应首先检测FOREGROUND附近的信标设备。这就是IOS 7中的当前限制。
有没有人有过如何检测ibeacon设备的经验,而不让用户将应用程序带到前台并单击按钮开始测距和监控?..
谢谢
答案 0 :(得分:2)
您可以使用CoreLocation信标监控API在后台检测信标 - 它的工作方式与前台相同,并且是自动的。您无需进行任何特殊配置即可进行设置。
您的应用首次运行并设置监控区域时,即使您的手机重新启动或您的应用不再位于前台,CoreLocation也会记住它。当您进入或退出信标区域时,您的应用程序将在后台启动约5秒钟,并且它将获得didDetermineState: forRegion:
方法的回调。
你甚至可以在这五秒钟内在后台进行测距,之后iOS会再次暂停你的应用。这五秒窗口通常用于向用户发送本地通知,因此如果需要,他们可以手势将应用程序启动到前台。这允许您告诉用户他们在感兴趣点附近(由靠近信标触发)然后让他们选择通过点击本地通知来获取更多信息或与应用互动。
请注意,后台监控回调不是即时的。最多可能需要15分钟才能在后台收到通知。 See here for details.