从android webview获取加载的资源文件列表
Get loaded resource files list from android webview
有什么方法可以将URL中当前成功加载和未加载的文件获取到android webview中。也就是说,如果我正在加载以下内容,
- 1.js、2.js、3.js
- 1.css、2.css、3.css
在 html 页面中并将 html 文件加载到 android 网络视图中。
我需要列出 webview 中加载的文件以及无法加载到 android webview 中的文件。我尝试使用 WebchromeClient 中的 onConsoleMessage(),它仅检测控制台错误。此方法未获取 css 图像的错误消息。
是否可以列出来自 URL 的文件?
您可以通过覆盖 WebViewClient.shouldInterceptRequest
来获取 WebView 尝试 加载的资源列表,如下所示:
class MyWebViewClient extends WebViewClient {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
android.util.Log.i("MyWebViewClient", "attempting to load resource: " + url);
return null;
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
android.util.Log.i("MyWebViewClient", "attempting to load resource: " + request.getUrl());
return null;
}
}
请记住,shouldInterceptRequest
是在后台线程上调用的,因此您需要同步访问任何共享数据结构。
虽然没有Java API 来确定 WebView 是否已成功加载给定资源。
有什么方法可以将URL中当前成功加载和未加载的文件获取到android webview中。也就是说,如果我正在加载以下内容,
- 1.js、2.js、3.js
- 1.css、2.css、3.css
在 html 页面中并将 html 文件加载到 android 网络视图中。
我需要列出 webview 中加载的文件以及无法加载到 android webview 中的文件。我尝试使用 WebchromeClient 中的 onConsoleMessage(),它仅检测控制台错误。此方法未获取 css 图像的错误消息。
是否可以列出来自 URL 的文件?
您可以通过覆盖 WebViewClient.shouldInterceptRequest
来获取 WebView 尝试 加载的资源列表,如下所示:
class MyWebViewClient extends WebViewClient {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
android.util.Log.i("MyWebViewClient", "attempting to load resource: " + url);
return null;
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
android.util.Log.i("MyWebViewClient", "attempting to load resource: " + request.getUrl());
return null;
}
}
请记住,shouldInterceptRequest
是在后台线程上调用的,因此您需要同步访问任何共享数据结构。
虽然没有Java API 来确定 WebView 是否已成功加载给定资源。