这个问题是关于应用程序何时在后台我得到了一个与2个iBeacons一样的应用程序(相同的UUID,相同的主要,不同的次要).
第一个iBeacon(次要1)例如用于门.当应用程序在后台时,我会收到进入该区域的通知.这很好用.现在,例如,我走进商店,在某个点是第二个iBeacon(次要2).如果我在第二个iBeacon的紧邻区域,应用程序应该发出通知.("嘿,你在现金点").但我读到,当Applikation处于背景中时,这是不可能的.它只在我按下肩部按钮或主页按钮时才有效. http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html
所以问题:任何人都可以给我一个提示如何实现这个用例.
几件事:
创建信标区域时,您可以仅匹配UUID,UUID和主要值,或UUID,主要和次要值.
如果仅指定UUID,则您的信标输入/退出通知将不包含主要/次要值信息.
同样,如果您创建一个具有UUID且主要但不是次要值的区域,则您的信标输入/退出消息将包括信标的UUID和主要值,但不包括次要值.
最简单的方法是创建一个单独的区域,以便跟踪您正在跟踪的唯一信标.然后,您将为每个信标获得单独的进入/退出通知.
如果您希望多个信标属于同一区域,但报告不同的主要或主要/次要值,则必须打开信标范围并等待测距呼叫.在测距调用中,您将获得与当前区域匹配的所有信标的信标对象数组(不是信标区域对象,CLBeacon对象).信标对象将包括该信标的实际UUID,主要和次要.
如果您在后台并且同时打开了信标监控和范围,您将获得didEnterRegion消息(或者可能是更改的状态消息),然后是几秒的测距信息,然后您的应用程序将重新进入休眠状态.
当您的应用在后台时,您唯一真正的选择是显示本地通知,并希望用户再次唤醒您的应用.如果用户滑动该通知,系统会在需要时提示用户提供解锁凭据,然后将用户带回您的应用程序.