我可以使用shouldInterceptRequest阻止Android中的特定呼叫吗?

时间:2013-04-16 18:35:04

标签: android android-intent

我使用了以下代码

public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
    alertsavedinternal(); //display an alert
    Log.d("DEBUG", "Should intercept request" +url); 
    //log the url to console in debug mode.
    return null;
}

但是,在显示警报时,我的控制台还会打印日志,除此之外,URL也会在后台加载。如何阻止网址加载?

请更正我对此功能的理解。

由于

2 个答案:

答案 0 :(得分:0)

如果您在shouldInterceptRequest中返回null,则表示WebView将继续照常加载资源。

这就是为什么您看到URL仍在加载的原因。

为了拦截和阻止呼叫,您需要返回自己的(非空)数据。

答案 1 :(得分:-1)

shouldInterceptRequest没有此能力。

  

通知主机应用程序资源请求并允许应用程序返回数据。如果返回值为null,则WebView将继续像往常一样加载资源。否则,将使用返回响应和数据。

Android developer

如果您需要停止URL请求,可以使用此方法:

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    if (stop_url_cond) {
       return true;
    }
    return false;
}
  

return true表示主机应用程序处理url,而return false表示当前WebView处理url。

Android developer