最進項目中遇到一個問題,我們項目的商品詳情界面是上面一部分原生界面肤舞,下面一部分用的webView展示H5界面均蜜,當我實現(xiàn)功能后,發(fā)現(xiàn)每件商品第一次進來的時候篙顺,H5界面只加載出來了一半左右,還有一半是空白德玫,一開始以為是加載的問題,但是打印之后材彪,發(fā)現(xiàn)已經(jīng)都加在出來了琴儿,重新進入這個界面,H5界面展示就是正常的了造成。
一開始,以為加載H5喘蟆,網(wǎng)速太慢夷磕,沒有全部加載出來仔沿?但是webViewDidFinishLoad方法里打印了webVIew的高度,打印高度正常的封锉。成福。。
PS: 打印webView高度方法(在webViewDidFinishLoad方法里)
1. 根據(jù)webVIew的scrollerView的高度獲取webView高度
let webHeight1 : CGFloat = webView.scrollView.contentSize.height
2. let height = webView.stringByEvaluatingJavaScript(from: "document.body.offsetHeight;")
3. let webHeightStr = webView.stringByEvaluatingJavaScript(from: "document.body.scrollHeight")
let webHeight = CGFloat((webHeightStr! as NSString).floatValue)
屏幕快照 2017-12-12 下午6.21.56.png
打印結(jié)果大同小異净当,基本相同蕴潦,只有第二種稍微小一些,應(yīng)該也可能更準確一些潭苞。
回歸正傳绒窑,既然加載出來了锦援,還是加載不出來湖笨,是什么問題旗扑?
網(wǎng)上搜的赶么,說是加上 webView.sizeToFit(),然并卵,較真的話可能顯示的H5界面比原來大一點了辫呻,還是不符合需求...
最后才發(fā)現(xiàn)需要更新一下frame才行
在webViewDidFinishLoad 方法里面更新一下webView的frame
用獲取到的webView高度加上你原生界面的高度更新一下UI 完美解決
屏幕快照 2017-12-12 下午6.43.31.png