2013-10-22 1 views
5

Ho letto alcune informazioni su CLBeaconRegion e ho configurato alcuni iBeacons con successo e ho attivato gli aggiornamenti di posizione, anche mentre l'applicazione è in background.CLBeaconRegion non chiama didEnterRegion dalla terminazione

Tuttavia, da quello che ho letto e riporto da CLRegion, ho capito che dovrebbe essere possibile premere locationManager:didEnterRegion: dopo che l'applicazione è terminata.

Ho installato il mio CLBeaconRegion in questo modo:

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]; 

Ma io non sono in grado di innescare delegato s' il CLLocationManager dalla cessazione. Ho lasciato la regione (confermata da una notifica), ho viaggiato più lontano dal faro, ho aspettato per 30 secondi, poi sono tornato al faro, ma non ha attivato il delegato quando è terminato (funziona benissimo mentre in background e in primo piano).

Questo lavoro dovrebbe essere risolto? Mi sto perdendo qualcosa? Qualsiasi aiuto sarebbe grande.

risposta

4

Credo che quando si è in background o non in esecuzione, chiama locationManager: didDetermineState: forRegion: invece di locationManager: didEnterRegion :, e quindi solo se hai impostato notifyEntryStateOnDisplay su TRUE.

+0

Sullo sfondo, si chiama ancora 'locationManager: didEnterRegion:', come 'locationManager: didDetermineState: forRegion:', però, dal mio test, non chiamerà sia da uno stato terminato (utente strisciata l'applicazione in alto). Ho 'notifyEntryStateOnDisplay' impostato su' YES'/'TRUE', pure. – RileyE

1

MODIFICA: quanto segue non è più valido a partire dal 7.1. È ancora possibile ricevere le notifiche anche quando l'applicazione è chiusa

il comportamento delle applicazioni di essere strisciato via nel switcher applicazione ora ha l'effetto che stai descrivendo sotto iOS 7.

utenti che rimuovono l'applicazione dalla switcher ha deciso di non consentire l'esecuzione dell'app in background. Pertanto, il monitoraggio della regione non riaprirà la tua applicazione.

Controlla la sessione "Novità con Multitasking" dal WWDC 2013 per ulteriori informazioni.

-1

Sì,

Same behaviour is being noticed .Sometimes even while calling setNotifyEntryStateOnDisplay, didEnterRegion not called even when in foreground.