iOS-Swift-WKWebView獲取網頁高度

公司項目中的一個頁面設計成上部分原生,下面部分網頁,所以需要準確獲取網頁高度。

總結所有步驟

1.初始化WKWebView,并設置相關屬性。
2.實現(xiàn)WKNavigationDelegate代理方法,獲取網頁高度。
3.WKWebView的一些處理(禁用長按彈出框、監(jiān)聽通過JS調用警告框)
1.初始化WKWebView,并設置相關屬性。
//MARK:-設置webView的屬性
func setWebViewProperty() {
    webView = WKWebView(frame: view.bounds)
    
    if #available(iOS 11.0, *) {
        webView.scrollView.contentInsetAdjustmentBehavior = .never
    }
    webView.isOpaque = false
    webView.backgroundColor = UIColor.clear
    webView.navigationDelegate = self
    webView.uiDelegate = self    //監(jiān)聽通過JS調用警告框
    webView.scrollView.showsVerticalScrollIndicator = false
    webView.scrollView.bounces = false  //禁止彈回
    view.addSubview(webView)
}
2.實現(xiàn)WKNavigationDelegate代理方法。
//MARK:****************WKNavigationDelegate****************
extension Xxxxxxxx: WKNavigationDelegate {
    //頁面加載完成之后調用
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

        weak var weakSelf = self
        webView.evaluateJavaScript("Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight)") { (result, error) in
            if result == nil { return }
            
            let height = "\(result!)".floatValue()
            weakSelf?.webView.frame.size.height = CGFloat(height)
        }
    }
}
3. WKWebView的一些處理(禁用長按彈出框、監(jiān)聽通過JS調用警告框)
// 禁用長按彈出框
webView.evaluateJavaScript(
    "document.documentElement.style.webkitTouchCallout='none';",
    completionHandler: nil)

//MARK:****************WKUIDelegate****************
extension Xxxxxxxx: WKUIDelegate {
    // 監(jiān)聽通過JS調用警告框
    func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
        MBProgressHUD.showSuccess(message)
        completionHandler()
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容