본문 바로가기
iOS/이슈

[iOS Issue] Webview에서 URL link가 실행되지 않는 이슈

by Sky Titan 2022. 3. 28.
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

댓글