일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- WKWebView
- cocoapods
- 상태패턴
- SWIFT
- Lifecycle
- unowned
- 컴파운드패턴
- RxSwift
- ViewController
- 스트래터지패턴
- 팩토리메서드패턴
- DispatchQueue
- 데코레이터패턴
- 추상팩토리패턴
- 옵저버패턴
- 디자인패턴
- 전략패턴
- 커맨드패턴
- ios
- 템플릿메서드
- 이터레이터패턴
- 파사드패턴
- Mobile
- 싱글턴패턴
- 스테이트패턴
- 컴포지트패턴
- Xcode
- Scenedelegate
- 프록시패턴
- 어댑터패턴
- Today
- Total
ios dev kangwook.
iOS) User Activity 본문
NSUserActivity는 특정 시점의 앱 상태를 나타내는 표현
NSUserActivity객체는 앱의 상태를 캡쳐하여 나중에 사용하도록 배치하는 방법을 제공
시스템이 앱을 실행하고, activity 객체를 사용할 수 있게 되면 앱은 해당 객체를 사용하여 자기 자신을 적절한 상태로 복원할 수 있음
예) 사용자가 웹페이지를 열거나, 앱이 백그라운드로 이동하거나, 앱에서 다른 중요한 작업을 수행할 때
- user activity 객체를 만들 수 있음
- user activity 객체는 앱의 모든 작업을 추적할 수 있는 방법이 아니기 때문에 작은 편집이나 사소한 변경 작업에는 사용하지 않아야 함
- 사용자가 나중에 또는 다른 디바이스에서 계속 진행할 수 있는 중요한 체크 포인트에 사용
Supporting Handoff
Handoff는 사용자가 activity를 시작하고 다른 activity를 계속할 수 있게 해주는 기술
iCloud를 기반으로 하기 때문에 각각 같은 계정으로 로그인 되어있어야 함
예를 들어 iPad에서 비디오를 보고 있는 사용자는 Mac에서 같은 지점의 비디오를 계속 볼 수 있음
Handoff를 지원하려면 isEligibleForHandoff 프로퍼티를 true로 설정해야함(default값은 true)
Handoff 데이터 발생시키기
// WebViewController.swift
let kUserActivityType = "com.handoff.testapp"
func startHandoff(url: URL) {
let userActivity = NSUserActivity(activityType: kUserActivityType)
userActivity.webpageURL = url
self.userActivity = userActivity
self.userActivity?.becomeCurrent()
}
Handoff 데이터 받기
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType == kUserActivityType {
if let webViewController = self.window.rootViewController as? WebViewController {
webViewController.loadUrl(userActivity.webpageURL)
}
}
return true
}
Supporting Improved Search Results
NSUserActivity객체에 나중에 사용자가 검색하려는 정보가 들어있게 하려면, isEligibleForSearch프로퍼티를 true설정(default값은 false)
Spotlight는 user activity객체를 인덱싱하고 이후의 디바이스 검색시 이를 고려
예를 들어 사용자가 앱에서 특정 레스토랑에 대한 정보를 본 경우, 해당 user activity를 검색할 수 있음 → Spotlight를 사용하여 레스토랑을 검색하면 user activity에서 얻은 결과가 포함 될 수 있음
앱은 검색 결과에 사용하는 모든 activity객체에 대해 strong reference를 유지해야함
참조
'iOS' 카테고리의 다른 글
iOS) Alamofire 4 -> Alamofire 5 Migration (0) | 2024.04.02 |
---|---|
iOS) Privacy Manifest(PrivacyInfo.xcprivacy) 작성기 (0) | 2024.04.01 |
iOS) Documentation - Jazzy (2) (0) | 2022.11.29 |
iOS) Documentation - Jazzy (1) (0) | 2022.11.29 |
iOS) Documentation - DocC (1) (0) | 2022.11.22 |