- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 Android WebView 中屏蔽广告?我正在构建可让用户浏览网页但需要屏蔽广告的应用程序。它基本上是一个自定义浏览器,但我需要摆脱广告。
我最好的选择是什么?
基于:https://github.com/adblockplus/adblockplusandroid
看到这个: https://gist.github.com/rjeschke/eb1bb76128c5e9a9e7bc
import java.io.File;
import java.util.regex.Pattern;
import org.adblockplus.android.ABPEngine;
import org.adblockplus.libadblockplus.FilterEngine.ContentType;
import android.content.Context;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class BlockingWebViewClient extends WebViewClient
{
private ABPEngine engine;
private static final Pattern RE_JS = Pattern.compile("\\.js$", Pattern.CASE_INSENSITIVE);
private static final Pattern RE_CSS = Pattern.compile("\\.css$", Pattern.CASE_INSENSITIVE);
private static final Pattern RE_IMAGE = Pattern.compile("\\.(?:gif|png|jpe?g|bmp|ico)$", Pattern.CASE_INSENSITIVE);
private static final Pattern RE_FONT = Pattern.compile("\\.(?:ttf|woff)$", Pattern.CASE_INSENSITIVE);
private static final Pattern RE_HTML = Pattern.compile("\\.html?$", Pattern.CASE_INSENSITIVE);
public void start(Context context)
{
final File basePath = context.getFilesDir();
this.engine = ABPEngine.create(context, ABPEngine.generateAppInfo(context),
basePath.getAbsolutePath());
// Additional steps may be required here, i.e. :
// - subscription selection or updating
// - maybe also setting other options (like AcceptableAds)
// It might also be a good idea to delay the first calls until
// everything is loaded, have a look at AndroidFilterChangeCallback
// and ABPEngine.create()
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url)
{
// Determine the content
ContentType contentType = null;
if (RE_JS.matcher(url).find())
{
contentType = ContentType.SCRIPT;
}
else if (RE_CSS.matcher(url).find())
{
contentType = ContentType.STYLESHEET;
}
else if (RE_IMAGE.matcher(url).find())
{
contentType = ContentType.IMAGE;
}
else if (RE_FONT.matcher(url).find())
{
contentType = ContentType.FONT;
}
else if (RE_HTML.matcher(url).find())
{
contentType = ContentType.SUBDOCUMENT;
}
else
{
contentType = ContentType.OTHER;
}
// Check if we should block ... we sadly do not have the referrer chain here,
// might also be hard to get as we do not have HTTP headers here
if (engine.matches(url, contentType, new String[0]))
{
// If we should block, return empty response which results in a 404
return new WebResourceResponse("text/plain", "UTF-8", null);
}
// Otherwise, continue by returning null
return null;
}
最佳答案
已经完成了: https://github.com/adblockplus/libadblockplus-android
你可以把它放在xml:
<org.adblockplus.libadblockplus.android.webview.AdblockWebView
android:id="@+id/main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
关于android - AdBlock 网页 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35406852/
是否可以通过adblock在某个页面的元素上添加CSS规则? 像这样 #myElement { color: white !important; } 我试图找到一个脚本来在页面加载时更新此元素
我想知道是否有办法以编程方式跟踪或记录 Adblock Plus 阻止的网站。 Adblock Plus 仅显示被阻止网站的数量,但如果知道哪个网站被日志或跟踪 Adblock Plus 阻止,将非常
是否有一些用于阻止任何广告的 android 库? 如何阻止使用 javascript 注入(inject)? 当我编码时 webView1.getSettings().setJavaScriptEn
当我启用以下任一扩展时,我无法在 FireFox 中单击 LinkButton: AdBlock Plus 断开连接 知道为什么会发生这种情况以及我可以采取什么措施来解决它吗?我已尝试 Cause
我们有一个 html 页面,该页面使用的 javascript 库是 Choose.js 和 cgnotify,我们在其他页面中使用这两个库。没有任何内容被标记和命名为“ad”或任何包含“ad”的内容
我希望能够检测用户在访问我的网站时是否使用广告拦截软件。如果他们正在使用它,我想显示一条消息,要求他们关闭它以支持该项目,例如 this website确实如此。 如果您进入该网站并且您的浏览器启用了
我使用这个简单的代码来检测 adblock 是否处于事件状态 (function(){ var test = document.createElement('div'); test.innerH
我不能忍受听传统广播,因为我不能忍受听广告。 (电视也是如此,其中的广告比您想看的要响亮 200%。) 不幸的是,我的妻子需要在早上准备时听 radio 。 我在想,我们有插件来阻止我们的网络浏览器中
有没有办法在 flutter 的 WebView 中阻止广告?我正在构建允许用户浏览网页但需要阻止广告的应用程序。它基本上是一个自定义浏览器,但我需要摆脱广告。 最佳答案 navigationDele
我试图了解 adblock 如何隐藏元素。我只看到类似 -moz-binding: url("about:abp-elemhidehit?067696143543#dummy") !important
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
有没有办法在 Android WebView 中屏蔽广告?我正在构建可让用户浏览网页但需要屏蔽广告的应用程序。它基本上是一个自定义浏览器,但我需要摆脱广告。 我最好的选择是什么? 基于:https:/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我希望这是可以在这里提出的问题: 我有一种情况,我的网站中的标签没有出现,但它应该在那里。这些图像不是广告,而是 Logo 和一些媒体图像。 最后,我发现是广告删除 (ADR) 导致我的图像没有出现。
我试图在通常显示 300x250 广告的地方显示背景图片,但只有在 adblock 屏蔽广告时才显示。任何人都知道如何做到这一点?使用 div 会导致背景在我不想要的广告加载之前显示。 谢谢 最佳答案
您好,我正在使用 uBlock Origin,它似乎阻止了我用于 div 的代码。我正在使用 GA 实验来根据用户的变化来更改 div 的样式。 if ($(window).width()
我对内容如何被阻止的简单示例感兴趣。 “https://adblockplus.org/en/filters”的文档非常少,并且如何使用“https://easylist-downloads.adbl
当用户在他的网站上激活任何类型的广告拦截器时,我想避免打开新标签的超链接。 目前我的根目录中有一个 myFile.js,内容如下: jQuery.adblock = false; 我有这个功能来检测广
Adblock 正在屏蔽我们学生节赞助商页面上的图片。我已经调查过 StackOverflow: How to stop AdBlock plus blocking images in HTML pa
为什么下面的 Adblock 过滤器集不阻止 The Weather Channel 上的“关闭您的广告拦截器”元素网站? 注意:要显示消息,请在启用广告拦截器的全新私有(private)、隐身或访客
我是一名优秀的程序员,十分优秀!