webview中的Android屏蔽广告

时间:2014-07-03 07:22:07

标签: android browser webview ads

我想在自定义webview客户端(没有JavaScript注入)中实现可以阻止广告的机制。我是否可以通过受信任的来源抓取广告并将其替换为其他广告? 谢谢

2 个答案:

答案 0 :(得分:4)

在自定义WebViewClient中,您可以覆盖功能shouldInterceptRequest(WebView, WebResourceRequest)

来自Android docs

  

通知主机应用程序资源请求并允许应用程序返回数据。

因此,一般的想法是检查请求是否来自广告网址(大量黑名单过滤器),然后返回不是广告的“假”资源。

如需更深入的解释和示例,我建议您查看此blog post

答案 1 :(得分:1)

要实现这一点,您有两个选择:

  1. 使用Javascript注入的代码执行此操作(您明确表示,不要这样做)
  2. 在WebView中,而不是“http://example.com”加载“http://myproxy.com?t=http://example.com”(当然正确转义)并将“myproxy.com”设置为将获取上游页面的代理(在“t”查询参数,或以任何其他方式)并在向客户端发送响应之前将广告替换为受信任的广告。然而,这将是非常复杂的,因为广告可以有多种形式,它们通常是Javascript自己注入的,你可能需要在获取的HTML,CSS和JS文件等中重写大量的URL。