Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Python
- rxswift
- window
- Code
- SwiftUI
- Realm
- stack
- Git
- 한글
- JPA
- mac
- iOS16
- Session
- FLUTTER
- github
- Firebase
- MacOS
- 개발자
- IOS
- Xcode
- Apple
- Archive
- appstore
- UIButton
- darkmode
- Notification
- view
- Swift
- 웹뷰
- error
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) 지리적 지역 근접성 Monitoring 본문
반응형
상태 모니터링을 사용하면 사용자가 특정 지역에 들어오거나 나가는 시점을 확인할 수 있습니다.
개요
- 상태 모니터링(지오펜싱이라고도 함)은 사용자가 지리적 지역에 들어가거나 나갈 때 앱에게 신호를 보내는 것
- 지역 모니터링을 사용하여 위치 관련 작업을 수행할 수 있음
- 예를 들어, Reminders 앱은 사용자가 지정된 위치에 도착하거나 떠날 때 알림을 트리거하는 데 사용합니다. (아래 그림 참조)
- iOS에서 시스템은 지역을 모니터링하고 조건이 만족 상태와 만족하지 않은 상태 사이에서 변경될 때 필요에 따라 앱을 깨웁니다.
- macOS에서 조건 모니터링은 앱이 실행 중(포그라운드 또는 백그라운드)이고 사용자 시스템이 깨어 있는 동안에만 작동합니다.
- 시스템은 지역 관련 알림을 전달하기 위해 Mac 앱을 시작하지 않습니다.
지리적 조건 정의 및 모니터링
- CLCircularGeographicCondition 를 사용하여 지리적 좌표를 중심으로 하는 원형 영역을 정의합니다.
- 조건의 반경은 경계를 정의합니다.
- 모니터링하려는 조건을 정의하고 CLLocationManager객체의 startMonitoring(for:)메서드를 호출하여 시스템에 등록합니다.
- 시스템은 사용자가 명시적으로 중지를 요청하거나 장치가 재부팅될 때까지 조건을 모니터링합니다.
- 아래 코드는 메서드 호출자가 제공한 지점을 중심으로 조건을 구성하고 등록하는 방법을 보여줍니다.
- 이 작업은 200m 반경을 사용하여 조건의 경계를 정의한 다음 Core Location에서 비동기적으로 AsyncSequence이벤트가 도착할 때까지 기다립니다.
Task {
// Create a custom monitor.
let monitor = await CLMonitor("my_custom_monitor")
// Register the condition for 200 meters.
let center = myFirstLocation;
let condition = CLCircularGeographicCondition(center: center1, radius: 200)
// Add the condition to the monitor.
monitor.add(condition, identifier: "stay_within_200_meters")
// Start monitoring.
for try await event in monitor.events {
// Respond to events.
if event.state == .satisfied {
// Process the 200 meter condition.
}
}
}
[주의사항]
- 조건은 특정 하드웨어 기능에 의존하는 공유 리소스입니다.
- 모든 앱이 조건 모니터링에 참여할 수 있도록 하기 위해 Core Location은 단일 앱이 모든 유형의 20개 이상의 조건을 동시에 모니터링하는 것을 방지합니다.
- 이 제한에 따라 모니터링하려는 항목의 우선순위를 지정합니다.
이벤트에 응답하기
- 앱의 상태 변화가 있을 때마다 Core Location은 모니터의 AsyncSequence를 통해 이벤트를 제공합니다 .
- 조건이 충족될 때 iOS 앱이 실행 중이 아니면 시스템은 앱을 시작하려고 시도합니다.
- 앱이 다시 시작되면 동일한 식별자로 모니터를 다시 만드는 것은 사용자의 책임입니다.
- 모니터링은 사용자가 재부팅 후 기기를 잠금 해제한 후에만 발생할 수 있습니다.
- 조건이 변경되는 시점을 파악하려면 이벤트를 반복하는 것이 중요합니다.
'iOS, Swift > Geofencing' 카테고리의 다른 글
Swift ) Core Location Monitor 소개 (1) | 2024.11.01 |
---|
Comments