개발 - iOS SwiftUI

iOS SwiftUI 위치 사용권한 요청 예제

개미v 2023. 10. 23. 20:41

SwiftUI에서 위치 사용권한 요청하는 간단 예제 입니다.

 

프로젝트 설정에서 Privacy - Location When in Use Usage Description 추가

 

위치 사용권한 요청 예제

import Foundation
import SwiftUI
import CoreLocation

struct AgreeView: View {

    var body: some View {
        VStack {
        }
        .task() {
            await startTask()
        }
    }
    
    func startTask() async {
        // 위치 사용 권한 설정 확인
        let locationManager = CLLocationManager()
        let authorizationStatus = locationManager.authorizationStatus
        
        // 위치 사용 권한 항상 허용되어 있음
        if authorizationStatus == .authorizedAlways {
        }
        // 위치 사용 권한 앱 사용 시 허용되어 있음
        else if authorizationStatus == .authorizedWhenInUse {
        }
        // 위치 사용 권한 거부되어 있음
        else if authorizationStatus == .denied {
            // 앱 설정화면으로 이동
            DispatchQueue.main.async {
                UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
            }
        }
        // 위치 사용 권한 대기 상태
        else if authorizationStatus == .restricted || authorizationStatus == .notDetermined {
            // 권한 요청 팝업창
            locationManager.requestWhenInUseAuthorization()
        }
    }
}

 

위치 정보 사용 예제

        var locationManager = CLLocationManager()
        locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers
        let coordinate = locationManager.location?.coordinate
        let latitude = coordinate?.latitude
        let longitude = coordinate?.longitude