我有一个应用程序,它显示一个启动页,并在WebView中加载URL时删除该启动页。以下是我们使用的相关代码以删除启动页:
browser.setWebViewClient(new BrowserClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Work around for WebView onPageFinished called twice
if (flag == true) {
browser.setVisibility(View.VISIBLE);
splashImage.setVisibility(View.INVISIBLE);
pageLoader.setVisibility(View.INVISIBLE);
} else {
flag = true;
}
}
});
这段代码可以工作,但是速度很慢。启动页需要很长时间才能移除,而网页已经加载完成。
有没有什么技巧可以可靠地检测到WebView何时加载完页面?我已经研究了几天,但似乎找不到可靠的方法。
我看到最有希望的方法是下面这个,但放置此代码会在Android控制台中引发错误:
@Override
public void invalidate() {
super.invalidate();
if (getContentHeight() > 0) {
// WebView has displayed some content and is scrollable.
}
}
谢谢!
编辑:有很多答案提出了onPageFinished,甚至有人将其标记为使用onPageFinished的解决方案的重复链接。朋友们,我们已经在使用onPageFinished了。由于其不可靠性,我们正在寻找替代方法。