在javascript呈现后获取网页HTML内容的以下技巧非常适合放置在onNewPicture()
WebView
PictureListener
的{{1}}中:
browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
但是,出于某种原因,它仅在第一次加载页面时起作用。也就是说,应用程序的第一个这样的WebView.loadUrl()
调用获得了一个完全呈现的页面版本。
此后,如果我重新加载/刷新页面(相同的网址),HTMLOUT.showHTML()
的输出似乎是页面呈现之前的原始HTML + javascript 。
奇怪的是视觉,在WebView
本身,所有内容都在那里! (虽然经过了很长时间的延迟......我可以看到WebView的沙漏旋转,也许Javascript需要很长时间才能重新处理?)
这似乎暗示了初始化问题(在我的代码中),WebView中的错误,或者某些缓存原则,这些原则对于有经验的Web程序员来说是众所周知的,但我还不熟悉它。
然后它变得更有趣:后续调用WebView.loadUrl()
导致上述失败多次(3-10)次,直到......页面奇迹般地完全呈现! (然后再次发生多次失败,等等)
这可能表明时间问题?
有关如何调试或解决此问题的任何建议吗?
答案 0 :(得分:1)
你必须在页面加载后注入javascript!让我永远想通了