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 | 31 |
Tags
- 애니메이션
- 리펙토링
- 스위프트
- combine
- uitableview
- Refactoring
- swift documentation
- UITextView
- 리펙터링
- Protocol
- 클린 코드
- Xcode
- rxswift
- ribs
- Human interface guide
- collectionview
- RxCocoa
- Observable
- 리팩토링
- uiscrollview
- clean architecture
- UICollectionView
- map
- Clean Code
- tableView
- MVVM
- HIG
- ios
- SWIFT
- swiftUI
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS -swift] 3. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - 데이터 교환 본문
iOS 응용 (swift)
[iOS -swift] 3. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - 데이터 교환
jake-kim 2024. 3. 4. 21:411. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - Share Extension 생성까지
2. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - UI 구현
3. UIActivityViewController 인터페이스 제공 방법 (share extension, share sheet) - 데이터 교환
데이터 교환 방법
- 데이터 교환이란?
- 특정 앱에서 text를 share extension으로 공유해줄때 text를 받는 방법?
- ex) 유튜브 앱에서 특정 글을 인스타그램으로 공유할 때, 인스타그램의 share extension 쪽에 코드 구현이 필요
- 인스타그램과 share extension의 데이터가 서로 공유될 수 있게끔 App Groups 설정이 필요
- App Groups 설정 후 UserDefaults로 데이터 교환하면 완료
App Groups 설정
- Xcode > share extension 타겟 > Signing & Capabilities > App Groups
- (수동으로 하려면 apple develper 사이트에서 provisioning profile 만드는 곳에서 App Groups를 활성화하고, identifier를 생성)
- id값에 임의로 구분할 수 있는 값 입력
- share extension 타겟과 앱 타겟 각각 이 값을 입력하여 동일한 id를 바라보도록 설정할 예정
cf) 이때 만약 아래와 같은 인증 에러가 난다면 이 포스팅 글 참고
- share extension 타겟에 App Groups를 추가하면 id와 check 모양이 표출
- (아래 사진은 Apple Developer 계정 구독이 안되어 있는 경우 발생)
- share extenion뿐만이 아닌 앱에도 App Groups를 추가하고 위와 동일한 ID를 입력해주면 완료
(사진들에서는 Apple Developer 구독을 안한 상태라 빨간색으로 뜨고 이 기능을 실제로 사용하려면 구독이 필요한데, 편의상 설명만을 위해 빨간색 글씨가 뜨는 오류도 정상 처리되었다고 가정하고 설명)
- 이제 데이터 공유 준비는 완료되었고, share extension에서 UI를 타앱에 제공해주고, 이 UI에서 입력되는 것들을 UserDefaults로 ShareViewController에서 저장
- UserDefault를 앱에서 가져다가 사용하면 데이터 교환 완료
let defaults = UserDefaults(suiteName: "group.test.ex.instagram")
* 전체 코드: https://github.com/JK0369/ExShareInterface
* 참고
- https://developer.apple.com/documentation/uikit/uiactivityviewcontroller
'iOS 응용 (swift)' 카테고리의 다른 글
Comments