需求原因,看结尾。
当然有好的方法可以交流交流
大家知道网页上面挂的一般都是广告联盟的广告,一般就是大家看到的一张诱惑图片加跳转。所以拦截前我们要知道我们要过滤网站的那些内容。下面以百度首页为列。
我要把百度的logo进行拦截换掉。首先我们进行抓包,得到百度logo的图片地址。https://m.baidu.com/static/index/plus/plus_logo.png
接下来就行拦截替换,下面看核心代码。
webView.setWebViewClient(new WebViewClient(){ @Override public void onLoadResource(WebView view, String url) { super.onLoadResource(view, url); } @Override public WebResourceResponse shouldInterceptRequest(WebView view, String url) { if(url.contains("plus_logo.png")){ try { return new WebResourceResponse("image/png", "utf-8", mContext.getAssets().open("logo.png")); } catch (Exception e) { e.printStackTrace(); } } return super.shouldInterceptRequest(view, url); }
onLoadResource是加载后的调用所以在这里拦截是没有用的,我们要在shouldInterceptRequest进行拦截。如果监听到百度准备加载logo的时候我们就行替换。
return new WebResourceResponse("image/png", "utf-8", mContext.getAssets().open("logo.png"));
需要的三个参数:new WebResourceResponse("mime类型","编码格式",输入流);
MIME类型根据你拦截的类型进行编写,具体谷歌。
好下面我们看效果。
是不是可以了,哈哈这个其实很简单,也没有什么用,主要是哪天我在看小电影的时候,尼玛广告烦死了,所以想到了这个把广告屏蔽了。
本文介绍了如何在Android的WebView中拦截并修改加载的内容,以实现广告屏蔽或特定资源替换。通过抓包获取目标资源地址,然后在`shouldInterceptRequest`方法中进行拦截,用自定义的WebResourceResponse替换原有内容。示例中展示了如何替换百度首页的logo,以此说明该方法的实现过程。
730

被折叠的 条评论
为什么被折叠?



