要检查是否会调用webview的shouldInterceptRequest?

时间:2019-09-27 06:36:54

标签: javascript android webview

我正在使用一个Android应用程序,在该应用程序中,我使用webview加载具有对javascript函数的调用的html文件,如下所示:

java:

 mWebView.getSettings().setJavaScriptEnabled(true);
 mWebView.loadUrl("file:///android_asset/dog.html");
 mWebView.setWebChromeClient(new WebChromeClient());
 mWebView.loadUrl("javascript:sayhello('how are you')");
 mWebView.setWebViewClient(getWebViewClient());

html:

    <head>
    <script type="text/javascript" src="somelibrary.js"></script>
    </head>
<body>
<script>
function sayhello(text){
somelibrary.somefunc(text);
}
</script>
</body>

现在在我的应用程序中,我正在拦截来自js库的请求,如下所示:

 private WebViewClient getWebViewClient() {
return new WebViewClient() {
            @Nullable
            @Override
            public WebResourceResponse shouldInterceptRequest(final WebView view, final String url) {}
}}

我需要的是,我想检查是否应该调用方法shouldInterceptRequest,因为在我的某些请求中,它没有被触发。 如果请求未被拦截,我想显示一些消息。 有什么办法可以事先知道是否应该触发方法InterceptRequest?

1 个答案:

答案 0 :(得分:0)

shouldInterceptRequest:不仅针对那些通过网络发送请求的方案,还会为各种URL方案(例如http(s):、 data:,file:等)调用此回调。对于javascript:URL,blob:URL或通过file:/// android_asset /或file:/// android_res / URL访问的资产,不会调用它。

Refer