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
- UIPresentationController
- DevelopmentRegion
- Android
- ios
- 스크롤 탭
- Side Menu
- swift #swift keychain #keychain 사용법
- SwiftUI
- swift
- detect url
- DataBinding
- 개발자 면접
- Swift Package Manager
- url 관찰
- pod install
- UIViewControllerTransitioningDelegate
- convert base64
- 상단 탭바
- ViewBuilder
- List
- url 추적
- oberve url
- development language
- GeometryReader
- scrolling tab
- Tuist
- notifychanged
- base64 변환
- transformation.map
- 기존 앱
Archives
- Today
- Total
버그 잡이
WebView 내에서 url 이동을 관찰하는 방법 #Swift #WKWebview 본문
이번에 웹앱을 만들었습니다. 네이티브에서는 웹뷰로 url 을 띄워주는 기능만 있습니다.
화면이 present 되고 탭이 선택되는 등의 액션은 모두 웹에서 url 이동을 통해서 이루어집니다.
그런데, 요구사항으로 특정 url에서는 swipe로 navigation 되는 기능을 빼달라는 요청이 들어왔습니다.
이를 위해서는 웹뷰 내에서 url 이동을 트랙킹 할 수 있어야 합니다.
해결 방법
1. webView의 URL 을 관찰할 수 있는 observer를 추가합니다
self.webView.addObserver(self, forKeyPath: "URL", options: .new, context: nil)
2. obserValue 메서드를 오버라이드 해서 url을 받아봅니다.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == #keyPath(WKWebView.url) {
guard let url = self.webView.url?.absoluteString else {
return
}
print(url)
}
}
위 처럼 코드를 추가하면 url이 변경될때마다 url이 print 되는 것을 확인할 수 있습니다.
반응형
'Swift' 카테고리의 다른 글
Swift - Linked List 구현 연습 #Reverse Linked List (0) | 2022.04.10 |
---|---|
Swift - base64 <-> UIImage 변환 방법 (0) | 2021.11.30 |
Swift - async / await & async let 기초 (0) | 2021.07.08 |
swift - image button inset (이미지 버튼 inset 주기) (0) | 2021.01.23 |
swift - guard let self = self vs self?. (0) | 2020.12.08 |
Comments