Я хочу показать одно уведомление, когда маяки появятся в регионе. Я использовал следующий код:Показывать уведомление, когда маяк находится в регионе
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if region is CLBeaconRegion {
BeaconNotificationFound()
}
}
Менеджер мест и регион верны. Единственная проблема заключается в том, что с этой функцией ничего не происходит. Что мне делать?
Это код выше:
let locationManager = CLLocationManager()
let region = CLBeaconRegion(proximityUUID: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!, identifier: "AirLocate")
override func viewDidLoad() {
super.viewDidLoad()
//Darf Standort genutzt werden?
locationManager.delegate = self
if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedWhenInUse) {
locationManager.requestWhenInUseAuthorization()
}
locationManager.startRangingBeacons(in: region)
locationManager.startMonitoring(for: region)
}
Как выглядит код внутри BeaconNotificationFound()? Вы знаете, вызван ли этот метод? – davidgyoung
Да, функция работает. Он попробовал это на другой должности. – luki512
Хорошо, знаете ли вы, что BeaconNotificationFound() вызывается в этом случае? Проблема может быть просто в том, что это не так, что вы не получаете обратный вызов в регистровой записи. Это может быть много, много причин. Вероятно, вам нужно показать свой код, который настраивает мониторинг региона, и запрашивает разрешения на размещение в вашем приложении, чтобы мы могли быть уверены, что все правильно. – davidgyoung