我想知道如何确定 WebView 完全 加载完成。
让我定义一下完成:
当然,能够 clever 地结合上述方法并且可以正常工作的方式是最完美的。
你问我为什么要知道这个? 因为我想在 WebView 完全加载完成后注入一些 javascript 一次。
让我定义一下完成:
- 所有重定向已发生
- 页面可见,没有任何内容需要加载
WebViewClient.onPageFinished()
- 如果有重定向加载页面,它会多次触发。并且在页面显示之前就触发了。
PictureListener.onNewPicture()
- 每次屏幕更改和 AFAICT 的每个重定向都会触发。我怎么知道哪次触发是最后一次?
WebChromeClient.onProgressChanged()
- 与 onPageFinished 相同的问题。(在 David 建议该解决方案后添加)
Thread.sleep(5000)
- 很明显,为什么不接受这种方式。当然,能够 clever 地结合上述方法并且可以正常工作的方式是最完美的。
你问我为什么要知道这个? 因为我想在 WebView 完全加载完成后注入一些 javascript 一次。
WebViewClient.onPageFinished()
中添加“bad answer”:根据此处的内容,如果页面中有多个iframe,则它会多次触发。 - uTubeFanDOMContentLoaded
、window.onload
和document.ready
等事件可供选择。 - Fred