Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iPhone/iOS에서 위치 서비스를 사용하기 위해 프로그래밍 방식으로 권한을 요청하는 방법은 무엇입니까?

<시간/>

swift를 사용하여 iOS에서 위치 서비스 권한을 요청하려면 CLLocationManager를 사용할 수 있습니다.

샘플 프로젝트의 도움으로 이 작업을 수행합니다. 따라서 새 프로젝트를 만듭니다. 먼저 view controller에서 locationManager 개체를 만들어야 합니다.

var locationManager = CLLocationManager()

이제 우리는 우선 장치에서 위치 서비스가 활성화되어 있는지 확인해야합니다. 이를 확인하기 위해 다음을 사용할 것입니다.

CLLocationManager.locationServicesEnabled() 함수는 장치의 위치 서비스가 활성 상태인지 여부를 나타내는 부울 값을 반환합니다.

if CLLocationManager.locationServicesEnabled() {
   print("permissions allowed")
} else {
   locationManager.requestAlwaysAuthorization()
   locationManager.requestWhenInUseAuthorization()
}

위의 예에서 위치 서비스가 활성화된 경우 "permissions allowed"를 인쇄하고, 그렇지 않으면 alwaysInUse 및 WhenInUse 권한의 두 가지 권한을 요청합니다.

이제 장치에서 위치 서비스가 활성화된 경우 어떤 종류의 권한이 부여되는지 확인할 수 있는 또 다른 예를 살펴보겠습니다.

우리는 CLLocationManager.authorizationStatus() 메서드를 사용하여 주어진 종류의 권한을 반환합니다. 5개의 가능한 값을 갖는 열거형입니다.

공식 Apple 문서에 따르면 열거형의 값은 다음과 같습니다.

notDetermined, 제한됨, 거부됨, 승인됨, authorizedWhenInUse.

다른 예를 살펴보겠습니다.

if CLLocationManager.locationServicesEnabled() {
   switch CLLocationManager.authorizationStatus() {
      case .authorizedAlways,.authorizedWhenInUse : print("authorized.")
      case .denied,.restricted,.notDetermined : print("not authorized.")
   }
}