2015-01-06 1 views
1

SWIFT를 사용하여 간단한 iOS 앱을 구축 중입니다. WKWebView에서 기본보기 전체 화면의 단일 페이지 응용 프로그램을로드합니다. 광고를 클릭하면 모달로 표시되는 새로운 장면에서 또 다른 WKWebView가 열립니다. 그러나 새 장면에서 여러 페이지를 클릭하여 기본보기로 돌아 가면 기본보기의 빈 공간이 50 %가됩니다.WKWebView가 비어 있는지 감지

기본보기가 공백으로 표시되면 Safari 관리자에서 사라지고 webView.reload()가 작동하지 않습니다. 그러나 loadHTMLString은 작동합니다. 나는 WKWebView 빈 여부를 감지하는 간단한 방법은 무엇인지에 대해 궁금

1. override func viewWillAppear(animated: Bool) { 
2.  super.viewWillAppear(false) 
3.  if pageStatus == .BackFromAdScene { 
4.   if webView is Blank { 
5.    loadFromLocal() 
6.   } 
7.  } 
8. } 

: 그래서 이런 일을 할 수 있습니까? 즉, 4 번 줄은 어떻게 작성해야합니까? 나는이 트릭을했던 목표 - C에서

답변

3

는 :

[self.webView evaluateJavaScript:@"document.querySelector('body').innerHTML" completionHandler:^(id result, NSError *error) { 
     if (!result || ([result isKindOfClass:[NSString class]] && [((NSString *)result) length] == 0)) { 
     // reload your page 
    }]; 
2

user3437673의 대답은 올바른 것입니다. 최근에 iOS 개발에 참여한 저 같은 사람들을위한 SWIFT 코드가 있습니다.

 self.webView?.evaluateJavaScript("document.querySelector('body').innerHTML") { (result, error) in 
      if error != nil { 
       // the main web view has turned blank 
       // do something like reload the page 
      } 
     } 
+0

p1us one for Swift! – quemeful

관련 문제