2015-02-10 3 views
2

Я использую базовое расположение для отслеживания региона, чтобы определить, входит ли пользователь в выход из этой области.didEnterRegion и didExitRegion не работают в iOS8

К сожалению, мой код работает в iOS7, но не в iOS8.

Это код, который я использую:

func setMonitoredRegion() { 
var startLocation: CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: +52.53753000, longitude: +13.35971000)   
    var monitoredRegion = CLCircularRegion(center: startLocation, radius: 100, identifier: "Region Test") 
    locationManager.startMonitoringForRegion(monitoredRegion) 
} 

регион начинает отслеживаться в методе делегата didStartMonitoringForRegion:

func locationManager(manager: CLLocationManager!, didStartMonitoringForRegion region: CLRegion!) { 
    println("Starting monitoring \(region.identifier)") 
} 

Но в iOS8 методы didEnterRegion и didExitRegion не являются вызванный:

func locationManager(manager: CLLocationManager!, didEnterRegion region: CLRegion!) { 
    println("Entered Region \(region.identifier)") 
    self.showAlertViewWithTitle("Enter Region", message: "The user has entered in monitored region").show() 
} 

func locationManager(manager: CLLocationManager!, didExitRegion region: CLRegion!) { 
    println("Exited Region \(region.identifier)") 
    self.showAlertViewWithTitle("Exit Region", message: "The user has left monitored region").show() 
} 

Также, я не получаю ошибки:

func locationManager(manager: CLLocationManager!, monitoringDidFailForRegion region: CLRegion!, withError error: NSError!) { 
    println("Error:" + error.localizedDescription) 
} 

Или:

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) { 
    println("Error:" + error.localizedDescription) 
} 

В iOS8 я включил следующий ключ в info.plist файл:

NSLocationWhenInUseUsageDescription 

и в коде получить разрешение пользователя:

locationManager.requestWhenInUseAuthorization() 

Любая идея? Благодарю.

ответ

4

Я был в состоянии получить эту работу, установив «NSLocationAlwaysUsageDescription» в моем .plist файле.

Я не совсем уверен, что повысит использование батареи, когда приложение не работает, но это позволило мне получить уведомление о въезде и на выезде ...

+0

Эти методы ввода и выхода будут запускаться с NSLocationWhenInUseUsageDescription или нет? – Ramakrishna

1

Не забудьте активировать уведомляют-свойства:

self.beaconRegion.notifyOnEntry=YES; 
self.beaconRegion.notifyOnExit=YES; 
self.beaconRegion.notifyEntryStateOnDisplay=YES; 
+0

Я использовал его с моим CLCircularRegion регионом до locationManager.startMonitoringForRegion (monitoredRegion) с ним не работает. :( – RebecaMartin

Смежные вопросы