如何提取存储在从 runJavaScriptReturningResult 函数调用返回的对象中的值?

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

我正在开发一个 flutter 应用程序,它有一个 web 视图,我在其中调用了 runJavaScriptReturningResult 函数来返回一个简单查询的结果,如下所示。

Future<void> _injectJavascript(BuildContext context) async {
    final ret = await controller.runJavaScriptReturningResult(
        'document.getElementsByClassName("status-col")[1].childNodes[0].childNodes[0].innerHTML + ": " + document.getElementsByClassName("status-col")[1].childNodes[0].childNodes[0].title');
    FFAppState().paymenturlappstate = ret.toString();
    return;
}

问题是这返回一个对象,我不知道如何解析它。它不可索引,并且如上所示转换为字符串只能告诉我该对象的类。我在其他地方没有找到类似的东西,并且文档也没有给我任何继续的信息。有什么办法让我得到这个对象返回的字符串吗?

javascript flutter dart webview
1个回答
0
投票

您可以使用 Dart 的类型转换从该对象中提取字符串值

Future<void> _injectJavascript(BuildContext context) async {
  final result = await controller.runJavaScriptReturningResult(
      'document.getElementsByClassName("status-col")[1].childNodes[0].childNodes[0].innerHTML + ": " + document.getElementsByClassName("status-col")[1].childNodes[0].childNodes[0].title');

  if (result != null && result is String) {
    FFAppState().paymenturlappstate = result;
  } else {
  }
  return;
}
© www.soinside.com 2019 - 2024. All rights reserved.