반응형
하이브리드 앱에서 웹뷰 사용시, 새로운 페이지가 로딩될 때마다 이를 감지하고 변경된 url을 받아오는 법을 알아보자.
url 변경을 감지하기 위해서는 다음 두가지 방법을 사용할 수 있다.
1. webView:decidePolicyForNavigationAction:decisionHandler:에서 navigationAction으로 받아오는 법
2. webView에 observer를 통해 url로 들어오는 값을 살펴보는 법.
첫번째가 좀 더 간단하고 쉬워보여 첫번째 navigationAction으로 받아오는 법을 사용해보았다.
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
let urlString = navigationAction.request.url?.absoluteString ?? ""
decisionHandler(.allow)
}
다음과 같이 didReceiveServerRedirectForProvisionalNavigation을 사용하는 방법도 있다고 한다.
func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
if let url = webView.url?.absoluteString{
print("url = \(url)")
}
}
참고 : StackOverflow - How to observe url redirection in wkwebview in iOS,
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift iOS] 키보드가 textField를 가릴 때 해결법 (0) | 2021.09.23 |
---|---|
[Swift iOS] NotificationCenter & Observer (0) | 2021.09.23 |
[Swift iOS] 한글 포함된 URL 인코딩하는 법 + url 디코딩 (0) | 2021.09.01 |
[Swift iOS] AutoSlide Banner using UICollectionView (0) | 2021.08.11 |
[Swift iOS] UIScrollView (0) | 2021.08.10 |