728x90
반응형
WidgetKit Deep linking
- 위젯은 애니메이션이나 커스텀 interaction이 없지만. 위젯에서 앱으로 deep linking할 수 있다.
- 위젯은 세가지 스타일이 있다. (
.systemSmall
,.systemMedium
,.systemLarge
)systemSmall
은 위젯 하나가 큰 tap 영역이다.systemMedium
과systemLarge
는 SwiftUI link API를 사용해서 위젯에 tap이 가능한 구역을 설정할 수 있다.
Deep Linking을 할 수 있는 두가지 방법
Link
API : view를 Link로 감싸고 destination url을 전달한다..systemMedium
,.systemLarge
에서만 가능하다.- 복수 Link 구성이 가능하다.
- widgetURL(_:) : view에 widgetURL 수정자를 추가한다.
- 모든 위젯 사이즈에서 사용할 수 있다.
- 두 개 이상 사용할 수 없다.
언제 Link를 쓰고 언제 widgetURL()을 써야할까?
- 한 화면에 하나의 URL만 존재한다?, small 사이즈다? →
widgetURL
- 여러개의 URL이 존재한다? →
Link
위젯에서 앱으로 deep linking하는 2가지 방법
- 위젯이 interaction을 수신하면 앱은 URL을 앱 생명주기에 따라
onOpenURL(perform:)
,application(:open:options:)
, orapplication(:open:)
에 전달한다. - Link나 widgetURL을 사용하지 않고 앱을 실행한 경우는
NSUserActivity
를onContinueUserActivity(:perform:)
,application(:continue:restorationHandler:)
, 또는application(_:continue:restorationHandler:)
에 전달한다.userInfo
에 해당 위젯에 대한 세부 정보가 들어있다. WidgetCenter.UserInfoKey 키를 사용한다.
반응형
'Programming > iOS' 카테고리의 다른 글
[iOS] Location Service - 위치 권한에 대한 모든 것 (0) | 2021.10.30 |
---|---|
[WidgetKit] 변경가능한 위젯 만들기 (Making a Configurable Widget) (0) | 2021.10.30 |
[WidgetKit] WidgetKit에 대해 알아보자 (구성요소, protocol 등) (0) | 2021.10.28 |
[iOS/Swift] 흔들어서 QR체크인 실행하기 파헤쳐보기 (motionShake) (1) | 2021.10.15 |
[iOS] Clean Architecture, 내 생각 (0) | 2021.10.09 |