我使用了以下代码
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也会在后台加载。如何阻止网址加载?
请更正我对此功能的理解。
由于
答案 0 :(得分:0)
如果您在shouldInterceptRequest
中返回null,则表示WebView将继续照常加载资源。
这就是为什么您看到URL仍在加载的原因。
为了拦截和阻止呼叫,您需要返回自己的(非空)数据。
答案 1 :(得分:-1)
否shouldInterceptRequest
没有此能力。
通知主机应用程序资源请求并允许应用程序返回数据。如果返回值为null,则WebView将继续像往常一样加载资源。否则,将使用返回响应和数据。
如果您需要停止URL请求,可以使用此方法:
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (stop_url_cond) {
return true;
}
return false;
}
return true表示主机应用程序处理url,而return false表示当前WebView处理url。