从 EngineSession 中抓取 HTML 数据

问题描述 投票:0回答:1

在我的 Android 应用程序中,我使用 EngineSession (由 EngineView 渲染)来显示数据。事实上,这些数据是纯 JSON。有没有办法可以直接从 EngineSession 抓取/抓取 HTML,以便我可以访问返回的 JSON?

如果我使用的是 WebView,我可以使用 WebView 的

evaluateJavascript()
功能。

我看到的唯一可以导出 HTML 数据的 EngineSession 函数是:

  • 请求PdfToDownload()
  • 请求打印内容()

但是这些函数都不能直接访问正在显示的原始 HTML。我该怎么办?

我将不胜感激任何帮助或指示。

android mozilla geckoview
1个回答
0
投票

我做了一些研究。然后

webview
在以下情况下注意到部署。

它被加载到相关的webView中。

override fun render(session: EngineSession) {
        val internalSession = session as SystemEngineSession
        this.session = internalSession

        internalSession.view = WeakReference(this)
        internalSession.initSettings()

        internalSession.scheduledLoad.data?.let {
             // it -> string html
            currentWebView.loadData(it, internalSession.scheduledLoad.mimeType, "UTF-8")
            internalSession.scheduledLoad = ScheduledLoad()
        }

        internalSession.scheduledLoad.url?.let {
            currentWebView.loadUrl(it, additionalHeaders)
            internalSession.scheduledLoad = ScheduledLoad()
        }
    }

如果您可以访问

engineSession
。你可以使用

val internalSession = session as SystemEngineSession
var data = internalSession.scheduledLoad.data
© www.soinside.com 2019 - 2024. All rights reserved.