3.【小萌伴】新闻/H5游戏模块及广告过滤

在完成主体聊天机器人功能后,拓展了新闻资讯及小游戏模块。精力有限,新闻列表用原生,具体内容则用h5嵌入第三方站点,而游戏则分为两部分,有几个原生小游戏(2048、防御小鸟、打飞机、贪吃蛇),更多的是爬了4399的h5小游戏。

xmb.itlao5.com

既然用到了第三方H5新闻及小游戏,肯定需要用到webview,这里仅做了一些基本处理;另外用到的是第三方的网页,需要去掉一些广告或第三方标志等,这就需要一套广告过滤的机制。

WebView

WebView做了一些基本设置,标题修改、返回及退出、页面加载控制、加载进度等…

WebSettings

这一块不多说,每个参数什么意思网上都很详细

文件选择

定义了一个文件选择回调接口

在ReWebChomeClient中

加载进度

加载进度显示,这里采用动画TranslateAnimation

进入网页时

在ReWebViewClient中

onBackPressed

写得有点繁琐,大体逻辑是:点击返回时,显示顶部退出按钮(为了解决反复301重定向导致退不出);然后通过canGoBack判断是返回goBack还是退出finish,如果是goBack,则将标题修改为上一页的标题。

广告过滤

广告过滤是比较繁琐的一块,做过几个版本,但是都不是很彻底,在机型兼容性和版本兼容性上不太好。大体还是围绕两个方向来展开,shouldInterceptRequest拦截和页面加载完毕后的js移除

这两种方法都是在ReWebViewClient中进行操作:

shouldInterceptRequest拦截

通过shouldInterceptRequest方法拦截指定页面及资源,这里5.0前后用到的不同

上面用到的isAd和hasAd中对拦截列表中的url或者关键字进行拦截

onPageFinished中通过js移除

这里因为app中都是用到的同一个站点的内容,所以分析其网页,移除指定的模块

简书:ThinkinLiu 博客: IT老五

以上就是【小萌伴】App中关于新闻/H5游戏模块及广告过滤的主体内容,具体的可以参考项目中com.e7yoo.e7.app.news中的内容。

相关内容:
1. 思量再三,终于鼓起勇气开源~
2.【小萌伴】机器人陪聊模块分享
3.【小萌伴】新闻/H5游戏模块及广告过滤

One Reply to “3.【小萌伴】新闻/H5游戏模块及广告过滤”

  1. Pingback: 【小萌伴Android】相关文章目录 – IT老五

发表评论

必填项已用*标注