我有一个显示广告(不是我的广告)的网页视图,问题是当用户单击"x“按钮退出广告时,广告仍然将他们定向到一个网站。我想知道的是,既然我不能控制广告,我可以在webview中禁用页面定向/转发吗?这意味着即使用户点击我的网页视图中的链接,也不会发生任何事情。
发布于 2013-08-10 00:35:39
您正在寻找WebClient.shouldOverrideUrlLoading方法。
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading (WebView view, String url){
//True if the host application wants to leave the current WebView and handle the url itself, otherwise return false.
return true;
}
});发布于 2014-12-02 13:09:26
我试过使用shouldOverrideUrlLoading,但它不起作用。看起来这个方法在加载html时只被调用一次。在此之后,您单击一个链接,但不再调用该方法。
我还制作了一个嵌入Youtube播放器的WebView。与从WebView转发广告重定向相比,我更喜欢在浏览器中打开广告。所以我重写了onLoadResource方法:
@Override
public void onLoadResource(final WebView view, final String url) {
if(url.indexOf("googleadservices.")>-1){
view.getSettings().setJavaScriptEnabled(false);
view.stopLoading();
view.postDelayed(
new Runnable(){
@Override
public void run(){
Uri uri=Uri.parse(url);
Intent i=new Intent(Intent.ACTION_VIEW,uri);
i.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(i);
}
}
,100
);
}
}
啊,真灵。当我点击广告链接时,打开了一个新的浏览器,其中的广告站点显示得很好,并且WebView没有被重定向。当我按下return按钮时,WebView再次出现,我可以继续观看视频。
但仍然存在一些问题。如果我多次重复打开浏览器并返回WebView,WebView可能无法阻止重定向到广告站点。它只是被重定向到广告站点。如果我幸运的话,我可以重复打开和返回100次。但有时当我重复几次时,它就失败了。我也不知道原因。
有没有人知道如何改进它?或者,有没有其他方法可以禁用广告重定向?
发布于 2018-05-23 14:57:18
您可以构建未检测到的webview build-id广告拦截器。
我知道现在回答这个问题为时已晚,但是,为了其他有同样问题的人。
好的,你可以建立webview build-id广告拦截器,如果你想阻止广告加载,并为用户提供流畅的体验,我有信心,因为我已经在5月份的应用程序中实现了它。
Idea
是有一个所有可能的广告服务域名的黑名单,那么当webview加载资源时,您将阻止从黑名单域名加载。所以这取决于你在黑名单中有多少广告服务域名,幸运的是,有一个网站()为你提供了一个非常长的广告服务域名列表,并以多种方式列出了它们。您可以阅读文章,了解以下内容:
,您将%100%构建它,只要您按照逐步说明进行操作即可。
总结我们需要做的事情:
pgl.yoyo.org.
WebViewClient.shouldInterceptRequest(WebView, String)截取该URL并将其覆盖,返回一个虚拟资源而不是实际资源,该资源应为adshttps://stackoverflow.com/questions/18151339
复制相似问题