完成渲染后如何获取WebView HTML页面内容?

时间:2021-01-13 22:27:19

标签: javascript android webview rendering

enter image description here

这个话题被提出和讨论了数百次。它们都与我面临的情况不符。请在回答之前阅读以下内容。

我想使用 WebView 从服务器响应中获取一些信息并显示在 WebView 中,但在嵌入式 javascript 执行之后。想要的信息可以随时在服务器中更改,目的是将此信息本地存储在客户端发布请求中,以便按需更新。

我使用 WebChromeClient 来确定页面何时加载 (onProgressChanged = 100%) 并使用 JavaScriptInterface 来获取 HTML 内容,但我获得了源代码(javascripts 尚未执行)。

我想捕捉的信息只有在 javascripts 执行后才可用。请参阅附图,它可能有助于澄清我的担忧。

如果有人遇到类似问题,我很想知道它是如何解决的。 谢谢

1 个答案:

答案 0 :(得分:0)

如果您知道 JSON 何时到达页面,那么您可以使用 WebView.evaluateJavascript 并运行 javascript 来提取 HTML。

根据https://stackoverflow.com/a/35917295/2921519 HTML提取可以通过

new XMLSerializer().serializeToString(document)

如果需要javascript在页面内容发生变化时主动通知Android端,则需要根据https://developer.android.com/guide/webapps/webview#BindingJavaScript添加javascript接口