iOS

iOS 替换WebView网页图片为本地图片

2018-07-13  本文已影响30人  887d1fc86fe6

UIWebView WKWebView 都可以适用。

// MARK: UIWebViewDelegate
func webViewDidFinishLoad(_ webView: UIWebView) {
        
     // 本地图片二进制
     let imegData:Data = UIImagePNGRepresentation(CW_PI_KTT_420_220_BG!)!
          
     // 转换 
     let imageSource:String = String.init(format: "data:image/jpg;base64,%@", imegData.base64EncodedString(options: .endLineWithLineFeed))
          
     // 获取所有的IMG标签或者IMAGE标签 进行替换  
     webView.stringByEvaluatingJavaScript(from: "var imgs = document.getElementsByTagName('img'); for (var i = 0; i < imgs.length; i++) { imgs[i].src = '\(imageSource)'; }")     
}

如果需要拦截网页里面所有图片信息,需要重写URLProtocol,在 NSURLSessionDataDelegate 中拦截文件Head判断 Content-Type 是否为图片格式 "image/jpeg","image/gif","image/png"... 注意: WKWebView不支持拦截Head

上一篇 下一篇

猜你喜欢

热点阅读