首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用地理信息和CLCircularRegion设置“签入”警报?

如何使用地理信息和CLCircularRegion设置“签入”警报?
EN

Stack Overflow用户
提问于 2016-07-13 19:53:54
回答 1查看 309关注 0票数 0

我试图设置一个警报,一旦用户进入特定位置,警报就会弹出,并允许用户“签入”。在用户签入应用程序之后,然后通知api端点用户成功签入。这是我第一次与地理和同地安置一起工作。我知道如何设置它的基本概念,但不完全确定签入警报和地理信息是如何结合在一起的。这是我的代码:

代码语言:javascript
复制
import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate{


  var manager = CLLocationManager()


  override func viewDidLoad() {
    super.viewDidLoad()


    // Core Location
    manager.delegate = self
    manager.desiredAccuracy = kCLLocationAccuracyBest
    manager.requestWhenInUseAuthorization()
    manager.startUpdatingLocation()


    var latitude: CLLocationDegrees = 43.039278
    var longitude: CLLocationDegrees = -87.932479
    var center: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
    var radius: CLLocationDistance = CLLocationDistance(10.0)
    var identifier: String = "storeID"

    var geoRegion: CLCircularRegion = CLCircularRegion(center: center, radius: radius, identifier: identifier)

  }


  func showSimpleAlertWithTitle(title: String!, message: String!, viewController: UIViewController) {
    let alert = UIAlertController(title: title, message: message, preferredStyle: .Alert)
    let action = UIAlertAction(title: "Check-In", style: .Cancel , handler: nil)
    alert.addAction(action)
    viewController.presentViewController(alert, animated: true, completion: nil)
  }


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-13 20:14:05

  1. notifyOnEntry = true设置在CLCircularRegion上,以便在进入或退出该区域时得到通知。
  2. 实现locationManager:didEnterRegion:委托方法来处理事件。

示例:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()


    manager.delegate = self
    manager.desiredAccuracy = kCLLocationAccuracyBest
    manager.requestWhenInUseAuthorization()
    manager.startUpdatingLocation()

    var latitude: CLLocationDegrees = 43.039278
    var longitude: CLLocationDegrees = -87.932479
    var center: CLLocationCoordinate2D = CLLocationCoordinate2DMake(latitude, longitude)
    var radius: CLLocationDistance = CLLocationDistance(10.0)
    var identifier: String = "storeID"

    var geoRegion: CLCircularRegion = CLCircularRegion(center: center, radius: radius, identifier: identifier)
    geoRegion.notifyOnEntry = true

    manager.startMonitoringForRegion(geoRegion)
}


func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {

    showSimpleAlertWithTitle("Entered region \(region.identifier)", message: nil)
}

func showSimpleAlertWithTitle(title: String!, message: String!) {
    let alert = UIAlertController(title: title, message: message, preferredStyle: .Alert)
    let action = UIAlertAction(title: "Check-In", style: .Cancel , handler: nil)
    alert.addAction(action)
    presentViewController(alert, animated: true, completion: nil)
  }

请参阅:CLRegion.notifyOnEntry

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38360567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档