2016-07-13 1 views
0

사용자가 특정 위치를 입력하면 경고가 팝업되고 사용자가 "체크인"할 수있는 알림을 설정하려고합니다. 사용자가 응용 프로그램을 체크인 한 후 api 끝점에 사용자가 성공적으로 체크인했음을 알립니다. 처음으로 지오 펜싱 및 corelocation으로 작업합니다. 어떻게 설정하는지에 대한 기본적인 아이디어를 얻었지만 체크 인 경고와 지오 펜스가 어떻게 연결되는지는 완전히 확신 할 수 없습니다. 입력 또는 지역을 종료 할 때 알림을받을 CLCircularRegionnotifyOnEntry = true을 설정Geofencing과 CLCircularRegion을 사용하여 "체크인"알림을 설정하는 방법은 무엇입니까?

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) 
    } 


} 

답변

0
  1. : 여기 내 코드입니다.
  2. locationManager를 구현하십시오. didEnterRegion : 이벤트를 처리하는 대리자 메소드.

예 :

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

관련 문제