gpt4 book ai didi

android webview测量所有资源的时间

转载 作者:行者123 更新时间:2023-11-29 00:10:00 30 4
gpt4 key购买 nike

是否可以测量一个webview所有资源的加载时间?例如,为了加载完整的网络,我使用:

public void onPageStarted(WebView view, String url, Bitmap favicon) {
startingTime = System.currentTimeMillis();
super.onPageStarted(view, url, favicon);
}

public void onPageFinished(WebView view, String url) {
timeElapsed = System.currentTimeMillis() - startingTime;
super.onPageFinished(view, url);
}

但是为了衡量CSS、图片等的负载,我用

public HashMap<String, Long> resources = new HashMap<String, Long>();

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){
resources.put(request.getUrl().toString(), System.currentTimeMillis());
WebResourceResponse response = super.shouldInterceptRequest(view, request);
return response;
}

public void onLoadResource(WebView view, String url) {
if(resources.containsKey(url)){
Long timeStartResource = resources.get(url);
Long timeElapseResource = System.currentTimeMillis() - timeStartResource;
}
super.onLoadResource(view, url);
}

我认为 onLoadResource 方法是在加载资源时执行的,但根据文档

public void onLoadResource (WebView view, String url).
Notify the host application that the WebView will load the resource specified by the given url.

public WebResourceResponse shouldInterceptRequest (WebView view, WebResourceRequest request)
Notify the host application of a resource request and allow the application to return the data. If the return value is null, the WebView will continue to load the resource as usual. Otherwise, the return response and data will be used.

它们都在加载资源之前运行。有什么方法可以衡量这些时间吗?

最佳答案

有一个很棒的 HTML5 API 可供您的页面访问。参见 http://www.sitepoint.com/introduction-resource-timing-api/

从KitKat开始,WebView基于Chromium,支持该API。要检查这一点,请打开 remote web debugging为您的应用程序(假设您已为 WebView 启用 JavaScript),并尝试在控制台中进行评估:

window.performance.getEntriesByType('resource')

对于您的页面已加载的每个资源,您将获得一组 PerformanceResourceTiming 对象。

为了将您的信息传输到 Java 端,您可以使用注入(inject)的 Java 对象。

关于android webview测量所有资源的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072136/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com