首页 > 解决方案 > 未来java的参数

问题描述

有没有办法Future<String>通过通道向 Java 发送参数?我有这个代码:

  Future<String> returnName(String dbName) async {
    return await platform.invokeMethod("getBatteryLevel");
  }

我想将参数 dbName 发送到 java。可能吗?感谢帮助!

标签: javaflutterdart

解决方案


如果可能的话,您可以在官方文档(https://flutter.dev/docs/development/platform-integration/platform-channels)中找到更多详细信息,现在我给您举个例子:

飞镖类

 static const platform = const MethodChannel('channel/example');

 Future<void> returnName(String dbName) async {
    return await platform.invokeMethod("sendDBName", <String, dynamic>{'data': dbName});
 }

因此,您正在发送一个值为 dbName 的对象。

Java 类

private static final String CHANNEL = "channel/example";

@Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);

    new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
            .setMethodCallHandler((call, result) -> {
       if (call.method.equals("sendDBName")) {
         String dbName = call.argument("data");
       }
    }
}

在这里,您正在接收从 Dart 发送的对象。


推荐阅读