반응형

WKWebView 웹사이트 출력 완료 시점에 자동화 처리를 해야하는 경우가 종종있다.

이럴경우 다음과 같이 현재 페이지 로딩이 완료됬을 때 이벤트를 받아 처리할 수 있다.

func waitFullyLoaded(_ completionHandler: @escaping () -> Void) {
	webView.evaluateJavaScript("document.readyState === 'complete'") { (result, error) in
     	if let fullyLoaded = result as? Bool {
  			if !fullyLoaded || self.webView.isLoading {//not fully loaded yet
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
                	self.waitFullyLoaded(completionHandler)
                }
            } else {// fully loaded
            	completionHandler()
        	}
    	}
	}
}
 
func test() {
	waitFullyLoaded { [weak self] in
	    guard let unwrappedSelf = self else { return }
    	unwrappedSelf.webView.evaluateJavaScript("javascript:main.payment();");
	}
}

 

반응형

'개발 > iOS' 카테고리의 다른 글

CocoaPods 설치 및 제거  (0) 2020.12.10
Clang diagnostic 경고 무시하기  (0) 2020.12.10
개발관련 폴더 경로  (0) 2020.08.06
웹에서 iOS 앱 설치여부 체크  (0) 2020.07.17
Dictionary sort  (0) 2020.07.11
블로그 이미지

SKY STORY

,