javascript - 检查 webview 的 shouldInterceptRequest 是否会被调用?
问题描述
我有一个 android 应用程序,我在其中使用 webview 加载一个调用 javascript 函数的 html 文件,如下所示:
爪哇:
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 方法,因为在我的某些请求中,它没有被触发。如果请求未被拦截,我想显示一些消息。有什么方法可以预先知道是否会触发 shouldInterceptRequest 方法?
解决方案
shouldInterceptRequest :该回调被各种 URL 方案调用(例如,http(s):、data:、file: 等),而不仅仅是那些通过网络发送请求的方案。这不适用于 javascript: URL、blob: URL 或通过 file:///android_asset/ 或 file:///android_res/ URL 访问的资产。
推荐阅读
- java - 模型类的圈复杂度
- matlab - 如何在 Matlab 中查看给定平面上的东西?
- ios - 汇编代码中的 iOS 12 错误 swift_getAssociatedTypeWitnessSlowImpl EXC_BAD_ACCESS
- javascript - 当对象键存在于javascript中另一个对象的数组中时,重构对象数据
- java - 如何创建一个不覆盖现有对象的新实例?
- ios - 如何将特定元素从数组传递到另一个视图或函数?迅速
- amazon-web-services - Amazon Cloudwatch Logs,解析函数的日期时间结果
- android - 如何设置通知渠道?
- python - 如何在不影响图像其余部分的情况下删除图像中的外圈?
- c++ - 连接一个 UDP 套接字,但仍然接收来自其他来源的数据报