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)
}
}