Tre*_*lyn 10 cllocationmanager ios ibeacon
我正在开发一款监控iBeacon地区的iOS应用程序.当应用程序在后台运行时,我希望它在遇到特定的iBeacon区域时发送本地通知.一切正常,除了一件事:locationManager:didEnterRegion显然不会被调用,直到用户显示锁定屏幕.因此,即使设备在应用程序处于后台时通过iBeacon区域,他们也不会在显示锁定屏幕之前收到通知.
我也尝试过使用startMonitoringForRegion,这种工作方式 - 如果应用程序在后台运行,则locationManager:didDetermineState:当设备进入iBeacon区域时触发.但是,它只执行一次 - 如果用户随后退出并重新进入iBeacon区域,则locationManager:didDetermineState不会再次触发.
我正在运行iPhone 5s并使用iPhone 4s作为iBeacon,如果这有任何区别的话.
更正:当我使用iPhone 4s作为客户端时,这种现象显然只会发生.如果我使用5s,通知会立即发送.
小智 5
只是想获得更多信息.您是否在CLBeaconRegion上将notifyEntryStateOnDisplay设置为YES?听起来像.
来自文档:
设置为YES时,位置管理器会在用户打开显示器并且设备已在区域内时发送信标通知.即使您的应用未运行,也会发送这些通知.在这种情况下,系统会将您的应用程序启动到后台,以便它可以处理通知.在这两种情况下,位置管理器都会调用其委托对象的locationManager:didDetermineState:forRegion:方法.
此属性的默认值为NO.
| 归档时间: |
|
| 查看次数: |
4997 次 |
| 最近记录: |