Я работаю над iOS-приложением, которое контролирует области iBeacon. Когда приложение работает в фоновом режиме, я хочу, чтобы он отправлял локальное уведомление всякий раз, когда он сталкивается с определенной областью iBeacon. Все работает отлично, за исключением одного: locationManager: didEnterRegion, по-видимому, не вызывается, пока пользователь не отобразит экран блокировки. Таким образом, даже если устройство прошло через область iBeacon, когда приложение было в фоновом режиме, они не получают уведомление, пока не отобразятся экран блокировки.
Я также пробовал использовать startMonitoringForRegion, и такие работы - если приложение работает в фоновом режиме, locationManager: didDetermineState: срабатывает, когда устройство входит в область iBeacon. Тем не менее, он делает это только один раз - если пользователь впоследствии выйдет из системы iBeacon и возвратится в нее, диспетчер locationManager: didDetermineState не запускается снова.
Я запускаю iPhone 5 и использую iPhone 4 как iBeacon, если это имеет значение.
Исправление: Это явление, очевидно, происходит только тогда, когда я использую iPhone 4 как клиент. Если я использую 5 секунд, уведомление доставляется немедленно.