美文网首页
去掉百度网页下方百度app推荐的banner实战

去掉百度网页下方百度app推荐的banner实战

作者: maoege | 来源:发表于2016-11-09 16:27 被阅读0次

ADBlock是浏览器必备的功能之一,ADBlock就是去掉网页广告功能,那么ios 浏览器(uiwebview)如何去广告勒,主要有两种形式的广告,一种是拦截服务器发送的URL,一种是dom元素隐藏,拦截URL这里有两种思路

    1.利用NSURLProtocol 拦截网页所有的请求。然后拦截所有的请求,去掉带有广告的js,图片等资源

    2.hook系统的- (NSURLRequest*)myWebView:(id)sender resource:(id)identifier willSendRequest:(NSURLRequest*)request redirectResponse:(NSURLResponse*)redirectResponse fromDataSource:(id)dataSource

这个方法拦截[request URL] 即可

dom元素隐藏是页面dom元素加载完成之后即webViewDidFinishLoad这个方法中,通过js脚本利用正则表达式匹配dom元素的进行隐藏

有了这两种操作90%的页面广告都可以拦截掉,但是最近pm提出需求,需要将m.baidu.com下方的banner广告进行拦截

经过多次试验,以上两种操作对拦截类似m.baidu.com下面的banner类似的广告都不行,那么该如何去掉它,经过手动点击✘掉广告,在下次访问的时候竟然没有广告,过了一两天,广告又出来,而且X掉广告的时候没有网络请求产生,会不会是点击✘的时候存本地了,那么浏览器的本地key value存在哪里,localStorage,果然,点击✘的时候localStorage多了index_fbannerios_lastclosetime和search_btmb_lastclosetime两个key值,那么就好解决了在加载完成的方法中加入如下代码

if([url.absoluteString rangeOfString:@"baidu.com/"].location != NSNotFound) {

            longlongtimeStamp =(longlong)([[NSDate date] timeIntervalSince1970] *1000.0);

            NSString *timeStampStr = [NSString stringWithFormat:@"%lld",timeStamp];

            NSString *jsStr = [NSString stringWithFormat:@"window.localStorage.setItem('index_fbannerios_lastclosetime',%@) ; window.localStorage.setItem('search_btmb_lastclosetime',%@)",timeStampStr,timeStampStr];

            [self stringByEvaluatingJavaScriptFromString:jsStr];

        }

果然,最后再次加载百度再也看不到烦人的百度APP推荐了

相关文章

  • 去掉百度网页下方百度app推荐的banner实战

    ADBlock是浏览器必备的功能之一,ADBlock就是去掉网页广告功能,那么ios 浏览器(uiwebview)...

  • RN-地图导航

    调起百度网页地图路径导航 调起高德网页地图路径导航 iOS调起百度APP地图路径导航 iOS调起高德app地图路径...

  • 【100天写作】67/100 智媒体时代的驯化与反驯化

    不知道大家有没有过和我一样的经历: 有一天,我打开百度,准备搜索一个资料,网页打开之后,在搜索框的下方百度推荐了三...

  • 百度地图简单调用

    直接调用百度地图网页版 判断本地是否有app

  • 去掉百度的广告推荐

    最近,看到了一个关于百度的新闻:作家 @陈文伍 在微博上表示,因百度未在法定期限内履行法院作出的公开道歉,赔偿经济...

  • (6)selenium元素控件如何点击_1

    在上一节,我们打开百度的网页,那么我们如何实现点击百度网页的内容呢?我们要实现的是这样的一个功能,打开百度网页,输...

  • 移动web资源整理

    一、META/LINK相关: 1、百度禁止转码 通过百度手机打开网页时,百度可能会对你的网页进行转码,往你页面贴上...

  • 百度定位

    百度定位 注册百度开发者中心账号注册百度地图开放平台账号,建立App下载百度地图sdk自己的App中引入百度sdk...

  • iOS 百度地图去掉logo

    iOS 百度地图去掉logo 资源文件中找到logo图去掉就好了

  • 2018-10-23

    fiddler抓包与http协议 一 网页不安全1,用fiddler抓包的时候,打开百度网页百度2.提示:网页不...

网友评论

      本文标题:去掉百度网页下方百度app推荐的banner实战

      本文链接:https://www.haomeiwen.com/subject/haqtpttx.html