【问题标题】:Flutter WebView: Retrieve ALL fully generated html from a rendered URL(Similar to "Inspect Element")Flutter WebView:从呈现的 URL 中检索所有完全生成的 html(类似于“检查元素”)
【发布时间】:2020-11-16 09:21:37
【问题描述】:

我正在尝试从this webpage 获取事件的标题并将它们放入列表中:

Since using HTTP did not get the fully generated html,我决定尝试使用flutter_webview_plugin

  1. 在隐藏的 web 视图上加载所需的 URL
  2. 提取完全生成的 HTML
  3. 解析 HTML 以获得我需要的标题

我正在使用此代码来加载 webview:

flutterWebviewPlugin.launch(
    "https://www.volunteermatch.org/search/?l=Long%20Grove,%20IL%2060047,%20USA",
    hidden: true);
flutterWebviewPlugin.onStateChanged.listen((viewState) async {
  if (viewState.type == WebViewState.finishLoad) {
    flutterWebviewPlugin
        .evalJavascript("document.documentElement.outerHTML")
        .then((html) {
      print(html);
      //some code to parse html
      flutterWebviewPlugin.close();
    });
  }
});

问题是,即使在 webview 加载完成后使用 JavaScript 代码检索 HTML 也不会给我与在 Safari 上“检查元素”相同的 HTML,而且没有标题也在其中。我错过了什么?

【问题讨论】:

标签: javascript html flutter dart flutterwebviewplugin


【解决方案1】:

好吧,现在我觉得很傻。

由于我在 iPhone 上运行该应用程序,因此我使用 Xcode 检查print(html) 的输出。出于某种原因,Xcode 不会打印出所有的 html 字符串:

Xcode 只留下一个<...>(右下角用红色圈出)并决定不打印其余部分。

【讨论】:

  • 运气好用这个吗?我仍然得到像 http.get() 这样的第一个 html,而不是我在 webview 中看到的完整 html
  • @Saifallak 基本上我的问题只是一个 Xcode 打印问题,而我使用的代码实际上确实得到了所有的 html。
猜你喜欢
  • 2020-03-21
  • 2013-07-03
  • 2013-11-04
  • 1970-01-01
  • 2015-06-27
  • 2014-06-08
  • 2018-12-02
  • 1970-01-01
  • 2020-05-15
相关资源
最近更新 更多