webView加載Html適配

1:由于直接加載的文字變小,或者圖片大小超過屏幕會不適配,則以下代碼可以完美適配, 加入標簽頭

//加標簽頭適配
let headStr = "<head><p align=\"center\" style=\"font-size:14px; color:#333333\">\(titleStr)</p><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"><style>img{max-width: 100%; width:auto; height:auto;} body{word-break:break-all;}</style></head>"
 let contentStr = "<html>" + headStr + self.htmlStr + "</html>"
 self.h5WebView.loadHTMLString(contentStr, baseURL: nil)

2:遵循的代理,不想麻煩直接粘了可以用,記得改一下了類名(禁止用戶選擇還是不錯的,有需求用得著)

extension JKNoticeDetailVC: WKNavigationDelegate {
    
    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        self.showLoadingView("")
    }
    
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        self.hiddenLoadingView()
        //禁止用戶選擇
        webView.evaluateJavaScript("document.documentElement.style.webkitUserSelect='none';")
        webView.evaluateJavaScript("document.activeElement.blur();")
        //文本文字的大小百分比
//        webView.evaluateJavaScript("document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'")
        
    }
    
    //提交發生錯誤時調用
    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        self.hiddenLoadingView()
        
    }
    
    // 頁面加載失敗時調用
    func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
        self.hiddenLoadingView()
    }
    
    //執行這個代理  didFailProvisionalNavigation url錯誤時才會執行
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        decisionHandler(.allow)
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容