如何从js函数获取数据?

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

在我的 Flutter 应用程序中,单击按钮会调用 js 函数“get User Push()”。结果写入 INFO:CONSOLE 中。请告诉我如何获取这些数据以供将来使用?

onPressed: () async {
        //controller.runJavaScript('getRole()');
        //String? s = stdin.readLineSync();
        //Future  regionName  = controller.runJavaScriptReturningResult('getUserPush()');
        Future  userId  = controller.runJavaScriptReturningResult('getUserPush()');
        userId.then((data) {
          String hZonesInt = data.toString();
          print(hZonesInt);
        },
            onError: (e) {
              print(e);
            });
        },

控制台显示信息:

I/chromium(14500): [INFO:CONSOLE(1300)] "37", source: ************* (1300)

我尝试解密函数本身的返回值,但总是得到 null。我也尝试直接从控制台读取,但也得到了null。

javascript flutter dart webview
1个回答
0
投票

您可以在调用 onPress 函数之前创建一个变量(我们称之为“foo”)。 然后,每当您从 runJavaScriptReturningResult 获得结果时,将结果分配(在 .then() 块中)到您事先创建的变量,以便稍后您可以调用该 foo 变量来读取其值。

   late final foo;
    onPressed: () async {
        //controller.runJavaScript('getRole()');
        //String? s = stdin.readLineSync();
        //Future  regionName  = controller.runJavaScriptReturningResult('getUserPush()');
        Future  userId  = controller.runJavaScriptReturningResult('getUserPush()');
        userId.then((data) {
          String hZonesInt = data.toString();
          print(hZonesInt);
          foo = data;
        },
            onError: (e) {
              print(e);
            });
        },

希望这对您有一点帮助。

© www.soinside.com 2019 - 2024. All rights reserved.