关于Android中的WebView有很多问题需要很长时间才能加载,但是我希望能够准确计算完全加载所需的时间,然后显示结果。
这可能吗?我可以启动一个计时器,但是一旦加载了WebView,它就会有一个HTML OnLoad样式调用吗?
我的代码是基本的:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.pageloadtest);
webView = (WebView) findViewById(R.id.webView1);
webView.loadUrl("http://www.airometricwireless.com");
}
这样可以很好地加载页面。我只需要花费多长时间。
答案 0 :(得分:4)
可能没科学准确,但我想你可以打电话
long a, b;
mWebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url) {
a = (new Date()).getTime;
}
public void onPageFinished(WebView view, String url) {
b = (new Date()).getTime;
}
});
然后b - a。
希望它有所帮助。
最好的问候。
答案 1 :(得分:0)
要完成页面加载,请使用
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// do your stuff here
}
});
答案 2 :(得分:0)
您可以使用onPageFinished,但正如文档所说,"当调用onPageFinished()时,渲染图片可能尚未更新。"
此外,它仅对简单页面有意义,因为它不会影响IFRAME或动态加载的内容,例如加载其他JavaScript的JavaScript,例如社交媒体按钮,广告,跟踪脚本等。它通常会导致页面感觉无法使用。
当人们说“加载速度慢”时,人们常常会说些什么。是"我需要很长时间才能与页面进行交互"这与加载资产所需的时间有很大不同。为此,你可能想测试一个onDOMReady
- 类似的事件是从JavaScript发出的,或者如果没有使用它,当非延迟的JS实际初始化时。
基本上,只要您在页面中有任何动态加载行为,onPageFinished
就变得毫无意义,您需要使用JS进行衡量。
与任何性能问题一样;