【发布时间】:2011-06-01 20:14:32
【问题描述】:
以下在 javascript 呈现后获取页面的 HTML 内容的技巧非常有效,当放置在 WebView 的 onNewPicture() 的 PictureListener 中时:
browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');");
但是,由于某种原因,它仅在页面第一次加载时才有效。也就是说,应用程序的第一个这样的WebView.loadUrl() 调用会获得页面的完整呈现版本。
此后,如果我重新加载/刷新页面(完全相同的 URL),HTMLOUT.showHTML() 的输出似乎是原始 HTML+javascript在页面呈现之前。
奇怪的是,视觉上,在WebView 本身上,所有内容都在那里! (虽然经过了很大的延迟......我可以看到 WebView 的沙漏在旋转,也许重新处理 Javascript 需要很长时间?)
这似乎暗示了一个初始化问题(在我的代码中)、WebView 中的一个错误,或者是一些经验丰富的 Web 程序员众所周知但我还不熟悉的缓存原理。
但它变得更加有趣:随后对WebView.loadUrl() 的调用导致上述失败多次 (3-10) 次,直到...页面再次奇迹般地完全呈现! (然后又多次失败,依此类推)
这可能表明时间问题?
关于如何调试或解决此问题的任何建议?
【问题讨论】:
-
您正在开发什么版本的android以及什么设备?这里至少有十个类似的问题没有答案,这是Android中的一个真正的错误,有点可怜,甚至是一个错误!让我们深入了解一下,Bug 报告可以在这里提交groups.google.com/group/android-developers
标签: javascript android webview android-webview