iOS/이슈
[iOS Issue] Webview에서 URL link가 실행되지 않는 이슈
Sky Titan
2022. 3. 28. 20:14
728x90
Why is WKWebView not opening links with target="_blank"?
WKWebView does not open any links which have target="_blank" a.k.a. 'Open in new Window' attribute in their HTML <a href>-Tag.
stackoverflow.com
Issue
이슈 내용은 웹뷰에서 로드된 웹페이지에서 문서 내부에 첨부된 URL 링크를 클릭 시 링크가 동작하지 않는 이슈였다.
Root cause
찾아보니 링크가 걸린 HTML 태그에 target="_blank" 라는 태그가 포함되어 있으면 문제가 생기는 거 였다.
Solution
일단 target="_blank"를 안 쓰는게 가장 효과적이지만 앱 내부에서도 WKUIDelegate의 아래 메서드를 구현하면 동작하게 만들 수 있다.
func webView(webView: WKWebView!, createWebViewWithConfiguration configuration: WKWebViewConfiguration!, forNavigationAction navigationAction: WKNavigationAction!, windowFeatures: WKWindowFeatures!) -> WKWebView! {
if navigationAction.targetFrame == nil {
webView.loadRequest(navigationAction.request)
}
return nil
}
대충 targetFrame이 없으면 다시 호출한다는 뜻인 것 같은데 웹뷰 프레임워크를 다뤄본 적이 거의 없어서 정확히 어떤 로직인지는 모르겠다
728x90