네이버에서 제공하는 showLocationButton 속성을 이용하면 사용자의 위치를 가져올 수 있습니다
사용자에게 위치 권한 받아오기
사용자의 위치를 가져오기 위해서는 우선 사용자에게 위치 정보에 대한 접근 권한을 받아야합니다. 그러기 위해서는 Info.plist 를 수정해야합니다.
Info.plist를 설정하여 사용자의 위치에 대한 권한을 받기 위해 사용자한테 보여줄 접근 권한의 설명을 설정하였으면 이제 사용자에게 접근 권한을 요청해야 합니다.
CoreLocation의 CLLocationManager 클래스의 requestWhenInUseAuthorization() 메서드를 사용해 사용자에게 접근 권한을 요청합니다.
import SwiftUI
import CoreLocation
@main
struct DiseaseTrackerMapApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.environmentObject(Coordinator())
.onAppear {
CLLocationManager().requestWhenInUseAuthorization()
}
}
}
}
이후 앱을 실행하게 되면 다음과 같이 뜹니다.
다음은 앱에게 위치 권한을 부여 했을 때 사용자 위치를 가져오는 버튼을 누른 결과입니다.
코드은 다음과 같습니다
let view = NMFNaverMapView(frame: .infinite)
view.showLocationButton = true
위치 권한 종류
위치 권한을 받기 위해서는 CLLocationManager의 2가지 종류의 접근 권한의 설정이 존재합니다
- requestWhenInUseAuthorization(): 사용자가 앱을 사용할 때만 사용자의 위치를 사용하는 권한 설명
- requestAlwaysAuthorization(): 사용자가 앱을 사용하지 않을 때에도 사용자의 위치를 사용하는 권한 설명
info.plist 종류
- NSLocationWhenInUseUsageDescription: 사용자가 앱을 사용할 때만 사용자의 위치를 사용하는 권한 설명
- NSLocationAlwaysAndWhenInUseUsageDescription: 사용자가 앱을 사용하지 않을 때에도 사용자 위치를 사용하는 권한 설명
- NSLocationUsageDescription: (macOS only) macOS 앱이 위치 서비스를 사용할 때 권한 받아오기 위한 설명
'SwiftUI' 카테고리의 다른 글
custom error (0) | 2024.05.11 |
---|---|
custom binding (0) | 2024.05.10 |
카메라를 이용하여 QR code 스캔하기 (0) | 2024.05.07 |
네이버 지도 (마커 눌렀을 때 데이터 정보 불러오기 with 클러스터링) (0) | 2024.05.04 |
네이버 지도 클러스터링 (0) | 2024.05.02 |