iOS 獲取web界面所有的圖片資源、查看大圖、HTML文本自適應屏幕大小

首先將獲取html的圖片和圖片點擊的方法注入到web里面去:

 let js = "var srcArr=[]; var allImage=document.getElementsByTagName('img');for(var i=0;i<allImage.length;i++){var image = allImage[i]; image.index = i;srcArr.push({'pic_url': image.src});image.onclick = function () {window.webkit.messageHandlers.\(getHtmlImagesHandlerName).postMessage({'index':this.index,'srcArr':srcArr});}}"
        
        let userScript = WKUserScript.init(source: js, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
        
        let config = WKWebViewConfiguration.init()
        let uservc = WKUserContentController.init()
        
        uservc.addUserScript(userScript)
        uservc.add(self, name: getHtmlImagesHandlerName)
        
        config.userContentController = uservc
        webView = WKWebView.init(frame: .zero, configuration: config)

上面的代碼就是獲取當前點擊圖片的下標和圖片地址的數(shù)組

//WKScriptMessageHandler 這個是協(xié)議
extension ASRealTimeDetailViewController: WKScriptMessageHandler {
    func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if message.name == getHtmlImagesHandlerName {
            let bodyTemp = message.body as! [String: Any]
            let index = bodyTemp["index"] as! Int
            
            let images = bodyTemp["srcArr"] as! Array<Any>
            
           //下面這個代碼是我自己封裝的查看網(wǎng)絡圖片的瀏覽器
            showWebViewBrowser(index, images: images)
        }
    }
}

可能HTML文字和圖片沒有適應當前屏幕大小,可以加入一下js代碼

guard let m = self.indexModel.detailNewsModel else { return }
        
        let html = "<html> \n <head> \n <meta name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,viewport-fit=cover'/> \n <style type=\"text/css\"> img { max-width: 100%; height: auto } \n body {font-size:14px;}\n </style> \n </head> \n <body> \(m.content ?? "") </body></html>"
        
        htmlString = html
        
        webView.loadHTMLString(html, baseURL: nil)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容