LocationButton

Panther·2021년 9월 9일
0
post-custom-banner

https://developer.apple.com/documentation/corelocationui/locationbutton

"A SwiftUI button that grants one-time location authorization."

위치 권한을 한 번 승인하는 SwiftUI 버튼입니다.

Declaration

struct LocationButton

Overview

LocationButton은 위치 데이터 접근을 위한 한 번의 권한 요청 승인을 간단하게 해줍니다. 사용자가 앱의 위치 데이터 관련 기능을 사용할 때마다 사용자의 위치 데이터에 대한 일시적인 접근을 승인하길 원하는 상황에서 SwiftUI UI로 이 버튼을 추가하시기 바랍니다.

사용자가 이 버튼을 처음으로 탭하면 코어 로케이션은 사용자가 위치 데이터에 일시적인 접근을 승인하길 원할 때 이 UI 요소를 사용해서 편의를 확인하는 것을 요청합니다. 사용자가 동의하면 앱은 임시 CLAuthorizationStatus.authorizedWhenInUse 권한을 받으며, 사용자가 앱의 표준 위치 권한 요청에 대한 "한 번만 허용"을 선택할 때처럼 동작합니다. 이 임시 권한은 앱이 사용중이 않게 될 때 만료됩니다.

사용자가 LocationButton을 사용해서 동의한 후 버튼은 사용자에게 추가적인 알림을 표시하지 않고 미래 권한 요청에 대해 승인된 것이 됩니다. 사용자가 다음에 탭하면 이 버튼은 확인 요청 없이 한 번의 권한 승인을 간단하게 해줍니다.

이 임시 권한을 받은 후 코어 로케이션 API를 사용해서 사용자의 위치를 가져올 수 있으며, 해당 위치 데이터와 관련이 있는 앱 특정 작업을 수행할 수 있습니다. 버튼 생성 시 액션을 구체화함으로써 권한을 가져온 후 수행하길 원하는 작업 시작을 위해 버튼을 연결하시기 바랍니다. 이 액션은 사용자가 이 버튼을 탭할 때마다 활성화된다는 것을 기억해야 하며, 앱이 이미 위치 권한을 갖고 있는지와 상관이 없습니다.

SwiftUI에서 아래처럼 LocationButton을 생성할 수 있습니다.

LocationButton(.currentLocation) {
  // Fetch location with Core Location.
}
.symbolVariant(.fill)
.labelStyle(.titleAndIcon)

Important
사용자가 버튼을 탭하면 위치 데이터를 가져오기 위한 한 번의 권한을 제공하며, 위치 데이터 자체는 아닙니다. 위치 데이터를 가져오는 것에 대한 더 자세한 정보는 Adding Location Services to Your App을 보시기 바랍니다.

Adding Location Services to Your App
https://developer.apple.com/documentation/corelocation/adding_location_services_to_your_app
https://velog.io/@panther222128/Adding-Location-Services-to-Your-App

아이콘, 레이블 표시를 위한 버튼을 설정하거나 labelStyle(_:) 뷰 모디파이어를 사용해서 둘 모두를 설정하시기 바랍니다. 아이콘을 포함하는 경우 symbolVariant(_:) 모디파이어를 사용해서 아이콘의 모양을 커스터마이징할 수 있슨비다. 디자인 가이드는 Human Interface Guidelines를 보시기 바랍니다.

Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/accessing-user-data/
https://velog.io/@panther222128/App-Architecture#accessing-user-data

See Also


Location Authorization

CLLocationButton

권한을 한 번만 승인하는 버튼입니다.

https://developer.apple.com/documentation/corelocationui/cllocationbutton
https://velog.io/@panther222128/CLLocationButton


post-custom-banner

0개의 댓글