2010-10-13 90 views
2

我对Android还很陌生,并且我有一个具有webview的应用程序。我需要知道什么时候页面真的完成加载

我需要知道什么时候该网页视图完成加载一个页面,其中有一个随机重定向(有时在同一页,并且重定向的顺序也发生变化),这样我就可以删除闪屏只有当有一个完全加载的页面时。

在webviewclient上,onPageStarted和onPageFinished函数每次重定向都会调用一次,就像onNewPicture一样(即使屏幕在重定向期间始终为空)。所以我不能确定什么时候它被称为最后一次(页面实际加载)。

我也尝试使用onLoadResource来计算加载的资源数量(危险和不可靠的方法,但我在这里变得绝望),但是这也失败了,因为在页面被缓存之后,它只被调用一个或两个倍。

这是一个很大的难题,我无法解决使用我所知道的至今,谁能帮我吗?

非常感谢。

回答

2

即兴,这听起来像你有一个网站,需要重写... :-)

这里有两种可能性,我能想到的:如果你得到一个

  1. onPageFinished()onPageStarted()经过这么长时间后,假定重定向完成。
  2. 如果这些重定向都是HTTP重定向(3xx响应状态码),您可以使用HttpClient导航重定向,直到获得最终的URL,然后将该URL指定为WebView以显示。
+0

+1的重写建议 – Falmarri 2010-10-13 17:35:57

+1

我同意,我只希望我有对这些网站的控制... – leparlon 2010-10-15 12:38:06

+0

顺便说一句,我想你的sugestion,我现在的时间进行计数之间的每个起点和终点,并忽略非常快速的(重定向)这种方式,可能发生的更糟糕的是在非常非常非常非常快速的3G连接上提前删除启动画面... 我认为这将是好的... 谢谢 – leparlon 2010-10-15 12:40:45

相关问题