728x90
안녕하세요.
이번에는 TCA를 활용하여 WebView를 만들어볼게요.
(TCA 0.54.0 기준으로 작성했으며, 전체 코드는 여기를 봐주세요!)
Reducer, Scope, TaskResult 등 지금까지 TCA에 대해서 간단하게 알아봤는데요.
지금까지 공부한 것을 활용하면 자식 WebView를 만들 수 있습니다!!ㅎㅎ
[참고] TCA로 WebView 만들면 뭐가 좋아?
UIKit 기반의 WebKit의 이벤트를 SwiftUI로 던져주거나, 반대로 SwiftUI 이벤트를 WebKit으로 던져주기 쉽습니다.
이전 글에서 다 다뤄봤던 내용이기 때문에 자세하게 설명은 생략하고 WebView, WebViewReducer 코드 먼저 보여드릴게요.
(좀 길어요..;;)
아직까진 SwiftUI 용 WebView가 따로 없기 때문에, UIViewControllerRepresentable를 사용해서 WebViewController를 감싼 WebView라는 것을 만들었어요.
WebView 생성 시 WebViewReducer를 전달받아서 WebViewController로 전달해 주고요.
WebViewController에서는 observer 또는 delegate로 이벤트를 받으면, 그 이벤트를 WebViewReducer로 전달시키는 방식입니다.
WebView를 사용하는 곳(=부모)에선 WebViewReducer를 자식 Reducer로 등록하는 것으로, 웹뷰로 이벤트를 전달하거나 웹뷰의 이벤트를 전달받을 수 있습니다.
더 스마트한 방법 알고 계신 분 계시면 공유해 주세요!!!
이번 글은 여기서 마무리.
반응형
'SwiftUI' 카테고리의 다른 글
TCA(8) : Binding (1) | 2023.08.09 |
---|---|
TCA(7) : 0.54.0 -> 1.0.0 업데이트 (0) | 2023.08.07 |
TCA(5) : 부모-자식 간 이벤트 전달 (0) | 2023.07.20 |
TCA(4) : Scope (1) | 2023.07.12 |
navigationBar가 숨김 처리된 상태에서 제스처로 화면 뒤로가기 (0) | 2023.06.28 |