我正在与Core Location
和Monitoring
的用户接近度进行合作。我的监视效果很好,但是我想检查用户是否按下了按钮checkIn
,检查他是否在正确的位置。我正在考虑将按钮连接到我的didEnterRegion
函数,并能够提示用户告诉您您在这个地方。这是我用于监视和didEnterRegion
的代码。
@IBAction func checkIn(_ sender: UIButton) {
if inSidePlace == true {
print("You are in the correct place")
} else {
print("You are not in the correct place")
}
}
func monitorRegionAtLocation(center: CLLocationCoordinate2D, identifier: String) {
//Here we need to check if is always or only when Using app.... doesn't make sense when using app for remote notifications if CLLocationManager.authorizationStatus() == .authorizedAlways {
if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self) {
// Register the region.
let region = CLCircularRegion(center: center,
radius: 20, identifier: identifier)
region.notifyOnExit = true
region.notifyOnEntry = true
let circle = MKCircle(center: center, radius: region.radius)
mapView.add(circle)
locationManager.startMonitoring(for: region)
}
}
}
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if let region = region as? CLCircularRegion {
let identifier = region.identifier
print("You are IN: " + identifier)
let title = "You entered the region!"
let message = "You are in the correct place!"
showAlert(title: title, message: message )
showNotification(title: title, message: message)
//If is possible to connect the button here so when user pressed it we can at least show the identifier
}
}
func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
if let region = region as? CLCircularRegion {
let identifier = region.identifier
print("You are NOT: " + identifier)
let title = "You left the region!"
let message = "You are not in the correct place!"
showAlert(title: title, message: message)
showNotification(title: title, message: message)
}
}
任何其他信息都让我知道。谢谢
答案 0 :(得分:0)
也许您可能有一个简单的实例变量来跟踪人员是否进入该地区?
//Your instance var:
var isInsideRegion = false
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if let region = region as? CLCircularRegion {
self.isInsideRegion = true //update the instance variable here
let identifier = region.identifier
}
}
@IBAction func checkIn(_ sender: UIButton) {
if self.isInsideRegion {
let title = "You entered the region!"
let message = "You are in the correct place!"
showAlert(title: title, message: message )
showNotification(title: title, message: message)
}
}