webview过滤广告终极招式
来源:互联网 发布:btsow最新域名 编辑:程序博客网 时间:2024/04/30 01:58
首先明白WebViewClient干啥的?
这货用于辅助WebView,处理各种通知、请求等事件
今天就是要重写她的方法!
这里主要交给javascript完成,那么javascript支持一定不能少!
WebSettings webSetting = webview.getSettings();
webSetting.setJavaScriptEnabled(true);
广告到底是啥?
明白了吧,就是一些div或者其他标签的块~~ 我们要把这些块去除 ~~
那么过滤广告的时机是何时?
页面加载完成的时候
public void onPageFinished(WebView view, String url) { blockAds(view);//过滤 }
blockAds首要的事情是view.getUrl(),通过url地址去匹配广告标签(Html标签属性)
关键就是构建javascript代码,懂web的都知道,Javascript中提供了访问文档标签的方法
StringBuilder sb = new StringBuilder(); sb.append("javascript: "); String[] alltag = tags.split(","); for (int i = 0; i < alltag.length; i++) { String adTag = alltag[i]; if (adTag.trim().length() > 0) { adTag = adTag.trim(); if (adTag.contains("#")) { adTag = adTag.substring(adTag.indexOf("#") + 1); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {//19 sb.append("document.getElementById(\'").append(adTag).append("\').innerHTML=\'\';"); } else { sb.append("document.getElementById(\'").append(adTag).append("\').remove();"); } } else if (adTag.contains(".")) { adTag = adTag.substring(adTag.indexOf(".") + 1); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { sb.append("var esc=document.getElementsByClassName(\'").append(adTag).append("\');for (i in esc){esc[i].innerHTML=\'\';};"); } else { sb.append("var esc=document.getElementsByClassName(\'").append(adTag).append("\');for (var i = esc.length - 1; i >= 0; i--){esc[i].remove();};"); } } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { sb.append("var esc=document.getElementsByTagName(\'").append(adTag).append("\');for (i in esc){esc[i].innerHTML=\'\';};"); } else { sb.append("var esc=document.getElementsByTagName(\'").append(adTag).append("\');for (var i = esc.length - 1; i >= 0; i--){esc[i].remove();};"); } } }
历史大事件
Android从4.4起提供基于Chromium实现的WebView。此前WebView基于WebKit实现。WebKit提供网页解析、布局和绘制以及JS运行等基础功能。Chromium在WebKit基础上为WebView提供进程、线程和渲染等基础构架。(大概是因为Android部门负责人从Andy Rubin变成了Chrome部门的主管Sundar Pichai了(现任谷歌CEO)吧)。
0 0
- webview过滤广告终极招式
- webview过滤广告
- Android Webview广告过滤的实现
- Android webview广告过滤的实现
- VB制作广告过滤
- Mozilla广告过滤软件
- 手机QQ2008广告过滤
- 路由器广告过滤设置
- excel减肥过滤广告
- RouteOS ROS广告过滤
- webView去广告
- Android WebView显示广告
- android webview 去掉广告
- WebView防广告注入
- android webView.loadData终极解决方案
- 终极方案:webview 闪白屏问题
- Mathon广告过滤规则发现
- 浏览器过滤广告的问题
- zzzrrraamm
- WordPress插件 | 在WordPress中使用FontAwesome
- 网络联机
- LeetCode 366. Find Leaves of Binary Tree
- C语言自增自减 比较运算符 逻辑运算符的使用 运算符的优先级
- webview过滤广告终极招式
- NOIP2011普及组 瑞士轮(分治)
- sqlite学习
- [编程规范]三、类型转换
- 多进程编程
- 静态内存与动态内存的分配
- JavaScript中实现继承的几种方式的使用和分析
- 我的C++之路
- sscanf函数用法详解