我想知道如何确定何时WebView是完全完成加载。如何确定Android WebView何时完成加载?
让我定义完全。
- 所有重定向发生
- 可见地显示页面,没有任何尚未加载
不好这个问题的答案:
WebViewClient.onPageFinished()
- 如果有重定向这个触发多次加载一个页面。它也会在页面显示之前触发。
PictureListener.onNewPicture()
- 每次屏幕更改和AFAICT每次重定向时都会触发。我怎么知道哪一次射击是最后一次?
WebChromeClient.onProgressChanged()
- 与onPageFinished相同的问题。 (在David在下面提出这个解决方案后添加)
Thread.sleep(5000)
- 应该是显而易见的,为什么这是不可接受的。
当然,上述工作的巧妙组合将是完美的。
为什么我想知道这个问题? 因为我想注入一些JavaScript 一次一旦Webview是完全完成加载。
添加到您的WebViewClient.onPageFinished()错误答案:根据[this](http://stackoverflow.com/a/5172952/725417),它会多次触发**也**如果你在页面中有几个iframe。 – uTubeFan 2011-12-14 00:50:34
@Carlos Man和你在同一个位置。唯一让我更糟糕的是PictureListener已被弃用。你能想出一个解决方案吗?我必须计算webview中的页面总数,我需要将内容宽度与屏幕宽度分开。但是我不能这样做,直到页面完全呈现在屏幕上。任何解决方案 – 2014-09-23 20:15:15
@ArunavhKrishnan上次我看着这是3年前。最后,我想我做了一些类似于接受的答案。祝你好运! – 2014-09-24 22:26:12