Je souhaite afficher une seule notification lorsqu'une balise entre dans la région. J'ai utilisé le code suivant:Afficher la notification lorsque la balise est dans la région
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if region is CLBeaconRegion {
BeaconNotificationFound()
}
}
Le gestionnaire d'emplacements et la région sont corrects. Le seul problème est que, avec cette fonction, rien ne se passe. Que puis-je faire?
C'est le code ci-dessus:
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)
}
Savez-vous si cette méthode est appelée? – davidgyoung
Oui, la fonction fonctionne. Il l'a essayé sur une autre position. – luki512
OK, savez-vous que le BeaconNotificationFound() est appelé dans ce cas? Le problème peut simplement être que ce n'est pas le cas, que vous n'obtenez pas de rappel d'entrée de région. Il y a beaucoup, beaucoup de raisons cela peut arriver. Vous avez probablement besoin de montrer votre code qui configure la surveillance de la région, et demande des autorisations de localisation dans votre application afin que nous puissions être sûrs que tout est correct. – davidgyoung