【问题标题】:How to get WebView HTML page content after complete rendering?完成渲染后如何获取 WebView HTML 页面内容?
【发布时间】:2021-01-13 22:27:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript android webview rendering


    【解决方案1】:

    如果您知道该 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接口

    【讨论】:

    • 感谢您的建议,遗憾的是所有 URL 都是相同的(调用服务器的除外)。关键不是如何,而是我应该在 WebView 中注入 javascript 以获取 html 内容。另一种选择是使用HttpClient拦截服务器响应中的JSON数据,但问题是一样的,没有具体的事件可以用来调用getHttp。
    猜你喜欢
    • 2016-07-15
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多