개발/iOS

[iOS] swift 웹뷰 팝업창 띄우기(window.open, window.close)

술개술게 2023. 8. 29. 13:56
반응형

웹뷰(WKWebView) 앱에서 본인인증을 구현하려고 했으나 팝업창이 띄워지지가 않아 한참을 해매다가

아래 코드 적용 후 정상 적으로 팝업 화면으로 넘어가고 window.close() 반응 잘받아오네요

var webView: WKWebView!  // 
var newWebView: WKWebView! // 새로 생성된 웹뷰를 담을 변수

//window.open() 기능
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
    // 새로운 웹뷰 생성
    let frame = UIScreen.main.bounds
    newWebView = WKWebView(frame: frame, configuration: configuration)
    
    // 오토레이아웃 처리
    newWebView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    
    // Delegate 설정
    newWebView?.navigationDelegate = self
    newWebView?.uiDelegate = self
    
    view.addSubview(newWebView!)
    
    return newWebView! // 생성한 웹뷰 반환하여 팝업 창에 표시
}
//window.close() 기능
func webViewDidClose(_ webView: WKWebView) {
    if webView == newWebView {
        newWebView?.removeFromSuperview() // 팝업 웹뷰 제거
        newWebView = nil // 변수 초기화
    }
}

 

반응형