我有一个使用WebView的Android应用。我们设置为在应用程序打开时显示启动页面,然后在页面加载时启动页面。这是相关的代码:
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;
}
}
});
问题是,通常在启动页面显示和删除页面之间存在显着延迟 - 延迟不归因于页面加载。 (意思是,页面加载后不会删除启动页面。)我猜这是因为onPageFinished在页面完全加载时被触发,包括所有脚本,有时可能会延迟(例如广告)。
所以,问题是,当页面完全加载时,我还能检测到其他任何方式吗?或者,甚至更好的是,是否可以检测何时加载(即可滚动的可查看内容)?
第二个问题与WebView处理缓存的方式有关。有时,我看到WebView显示过时的页面 - 已经在我的网站上更新过的页面。如何强制WebView在每个页面加载或后退按钮上检查/重新验证页面,以便不显示陈旧内容?我不一定要完全禁用WebView缓存,因为拥有缓存是有价值的。我只是不想要过时的内容。
谢谢!