투케이2K

85. (ios/swift) WKWebView 웹뷰 window open 새창 열기 이벤트 감지 및 외부 링크로 전환 실시 본문

IOS

85. (ios/swift) WKWebView 웹뷰 window open 새창 열기 이벤트 감지 및 외부 링크로 전환 실시

투케이2K 2021. 12. 24. 13:13

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [웹뷰 window open 새창 열기 이벤트 감지 실시]
    func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {

        // [url 주소 확인 실시]
        let _urlString = navigationAction.request.url!.absoluteString
        print("")
        print("===============================")
        print("[A_Main >> createWebViewWith() :: 웹뷰 [window open] 새창 이벤트 확인]")
        print("url :: \(_urlString)")
        print("===============================")
        print("")

        // -----------------------------------------

        // [사용 방법 설명]
        // 1. WKWebView 웹뷰 사용 실시
        // 2. 딜리게이트 선언 필요 - WKNavigationDelegate, WKScriptMessageHandler, WKUIDelegate,
        //    [예시 :: class A_Main: UIViewController, WKNavigationDelegate, WKScriptMessageHandler, WKUIDelegate)]
        
        // -----------------------------------------
        
        // [url 링크 값 체크 수행 실시]
        if _urlString != nil
            && _urlString.count > 0
            && _urlString.hasPrefix("http") == true {
            
            // [외부 브라우저 내부 링크 이동 실시 : UIApplication.shared.open]
            self.goSafariBrowser(_url: _urlString)
        }
        return nil
        
        // -----------------------------------------
    }

    func webViewDidClose(_ webView: WKWebView) {
        print("")
        print("===============================")
        print("[A_Main >> webViewDidClose() :: 웹뷰 [window open] 닫기 이벤트 확인]")
        print("===============================")
        print("")
    }

 

반응형
Comments