반응형
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 |