2016-09-18 5 views
3

nilのリターンは、私がWKWebViewにWebページの高さを取得する必要があります。だから私は以下のコードを使用します。iOS10 WKWebview - evaluateJavaScript(「document.height」)私のアプリで

webView.evaluateJavaScript(("document.height"), completionHandler: { contentHeight,error in 
    print(contentHeight) 
}) 

iOS 9までは、ウェブページの高さを正しく返します。しかし、iOS 10の場合、contentHeightは常にnilです。

私は

webView.scrollView.scrollEnabled = false 

を設定したとウェブビューはUITableViewCellです。

webViewのとUITableViewCellの高さが可変です。セルに収まるように、Webビューに上下の制約があります。

私は、Webページの高さを取得すると、私はそれは、セルの高さに反映させたいです。

+0

を使用して試すことができますが、私の現在の回避策は今のところ、そのcontentSize.heightを使用することです。 – wint

答えて

8

はこれを試してみてください。

let javascriptString = "" + 
      "var body = document.body;" + 
      "var html = document.documentElement;" + 
      "Math.max(" + 
      " body.scrollHeight," + 
      " body.offsetHeight," + 
      " html.clientHeight," + 
      " html.offsetHeight" + 
     ");" 

    webView.evaluateJavaScript(javascriptString) { (result, error) in 
     if error == nil { 
      if let result = result, let height = JSON(result).int { 
       self.htmlContentHeight = CGFloat(height) 
       self.resetContentCell() 
      } 
     } 
    } 

PS。問題のレンダリングWKWebiew: WKWebView not rendering correctly in iOS 10

+0

ありがとうございました!私はウェブページの高さを得ることができます!しかし、WKWebview.scrollView.scrollEnabled = falseを設定すると、高さを取得できません。いくつかのアイデアを知っていますか? – Dosukoi

+0

私は同じ問題があります。たぶんこれはあなたを助けるでしょう:http://stackoverflow.com/a/39556938 – orazz

+0

すべてのあなたの助けに非常に大きな感謝! – Dosukoi

0

あなたは私もこの問題に直面しています

webView.evaluateJavaScript(("document.body.offsetHeight"), completionHandler:^(id _Nullable result, NSError * _Nullable error) { 
    NSLog(@">>>%@",result); 
}) 
関連する問題