Swift之删除HTML5页面的广告

2017-11-11  本文已影响66人  TitanCoder

Swift之删除HTML5页面的广告

好久没来博客了,最近工作中任务(Bug)比较多!除了改Bug之外发现最近新出的一部电视剧不错, 给大家推荐一下<<<<猎场>>>>

猎场.jpg

一. UIWebViewDelegate

//当网页视图被指示载入内容而得到通知。应当返回YES,这样会进行加载。通过导航类型参数可以得到请求发起的原因
optional public func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool


//UIWebView的控件加载网页的监听函数方法:
//1. 当网页视图已经开始加载一个请求后,得到通知。
optional public func webViewDidStartLoad(_ webView: UIWebView)

//2. 当网页视图结束加载一个请求之后,得到通知。
optional public func webViewDidFinishLoad(_ webView: UIWebView)

//3. 当前请求加载中发生错误时,得到通知。
optional public func webView(_ webView: UIWebView, didFailLoadWithError error: Error)

二. 基于JavaScript的H5代码

删除前的原网页 查看网页代码 Snip20171111_6.png
//class类型
document.getElementsByClassName('gg-item news-gg-img3').style.display = 'none'
//id类型
document.getElementsById('gg-item news-gg-img3').style.display = 'none'
document.getElementsByClassName('gg-item news-gg-img3')[0].style.display='none'

三. 具体核心代码如下

最终效果图
extension NoneADViewController: UIWebViewDelegate{
    func webViewDidFinishLoad(_ webView: UIWebView) {
        //最顶部的广告
        webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('gg-item news-gg-img3')[0].style.display='none'")
        //删除页面浮框广告
        webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('dbleleven-wrap')[0].style.display='none'")
        //第一张图片下面的广告
        webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('baiduimageplusm-title-img-only')[0].style.display = 'none'")
        
    }
    
    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        guard let urlStr = request.url?.absoluteString else { return true }
        print(urlStr)
        
        return true
    }
}

上一篇下一篇

猜你喜欢

热点阅读