ios - tarjetas - se puede sobreescribir una tarjeta nfc
didExitRegion no se activó cuando apaga el bluetooth (2)
Estoy construyendo una aplicación IOS simple con IBeacon
, estoy monitoreando una región, pero tengo algunos problemas con los eventos de entrada y salida.
Si didEnterRegion
en una región, se didEnterRegion
la devolución de llamada didEnterRegion
, pero al estar dentro de la región, desactivar bluetooth no didExitRegion
devolución de llamada didExitRegion
. ¿Es este el comportamiento esperado?
Este es un problema ya que tengo que ser capaz de detectar cuando el usuario sale de la región. ¿Alguna idea?
Gracias
A mí me parece un comportamiento razonable. El usuario no ha abandonado la región, por lo que enviar una notificación didExitRegion
no es correcto.
Puede detectar si el bluetooth se ha desactivado , por lo que puede tomar las medidas adecuadas en función de eso.
Para fines de prueba, debe apagar sus balizas o moverse fuera del rango para obtener un evento didExitRegion
.
Una vez que CoreLocation
ha determinado que está dentro de una CLBeaconRegion
, solo cambiará de estado a estar fuera de la región después de que tenga la posibilidad de realizar un escaneo de Bluetooth durante 3 segundos durante los cuales no se detectarán balizas que coincidan con CLBeaconRegion
. Si Bluetooth no está encendido, no puede escanear para tomar esta determinación.
Si desea forzar una salida en su aplicación en este caso, considere escuchar los eventos del ciclo de vida de CoreBluetooth
. Al apagar, puede CLBeaconRegion
registro de cada CLBeaconRegion
, didExitRegion
su lógica didExitRegion
manualmente y luego CoreLocation
registro con CoreLocation
.