- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 flutter 项目(插件),它也使用一些 native java 代码。为了在 dart 和 java 之间进行通信,我使用了 MethodChannel.invokeMethod
。这在 dart for java 中非常有效,我可以在 java 中使用 call.argument("name")
提取命名参数。然而,另一种方法让我有点头疼,因为我需要通过我的方法调用将可变数量的参数传递给 dart,但 invokeMethod 仅将“Object
”作为参数。
我已经看到它只适用于单个参数,如字符串或 int,但我似乎找不到一个好的方法来实现它用于多个参数。
我原以为有某种列表对象类型可以作为 invokeMethod 的参数传递,但我无法在任何地方找到它。
你们中的任何人都可以提示如何最好地做到这一点吗?
最佳答案
你必须传递一个 Map<String, dynamic>
作为单一对象。 (请注意,每个动态必须是 allowed data types 之一。)这在 Java 端显示为 HashMap
。 . Java 端有有用的 getter 函数来访问 HashMap 成员。
飞镖
static void foo(String bar, bool baz) {
_channel.invokeMethod('foo', <String, dynamic>{
'bar': bar,
'baz': baz,
});
}
Java
String bar = call.argument("bar"); // .argument returns the correct type
boolean baz = call.argument("baz"); // for the assignment
使用这个 answer对于完整的轮廓,您可以实现相反的方向,例如:
Java
static void charlie(String alice, boolean bob) {
HashMap<String, Object> arguments = new HashMap<>();
arguments.put("alice", alice);
arguments.put("bob", bob);
channel.invokeMethod("charlie", arguments);
}
飞镖
String alice = methodCall.arguments['alice'];
bool bob = methodCall.arguments['bob'];
关于java - 我如何最好地使用 flutter MethodChannel.invokeMethod 的 java 版本提供多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852851/
有没有办法在不需要时处理 MethodChannel/EventChannel ?我问是因为我想为对象创建多个方法/事件 channel 。 例子: class Call { ... fields
我的应用程序将文件发送到 ftp 服务器。我通过MethodChannel在android上用java发送文件。 这些部分可以在单线程中完成所有工作。但我想发送带有 AsyncTask (java)
所以我在大约 4 个月前写了一个 Flutter 应用程序。现在我想做一个小改动,但我不能再编译应用程序了,因为 GeneratedPluginRegistrant.registerWith(this
Flutter docs 中的示例将他们正在使用的 MethodChannel(与 native 主机通信)直接在使用它的 Widget 中声明为 static const。为了将其中一些分离,我正在
我正在尝试使用一些 native 代码为 Flutter 创建一个 Facebook 身份验证插件。我已经让代码在一个完全 native 的测试项目上工作,但无法让它在 android 插件项目中工作
在Flutter中,平台 channel 分为三种,想了解一下它们的区别。 最佳答案 这些 channel 用于在原生代码(项目内的插件或原生代码)和 Flutter 框架之间进行通信。 方法 cha
得到这个奇怪的错误。似乎 MethodChannel 正在转换为 int 而不是 bool? 06-07 00:16:26.589 3678 4993 E flutter : [ERROR:top
我在应用程序关闭时尝试打开 android Activity 时失败。在下面的代码中看到,当我收到来自 firebase 的数据通知时,当应用程序在后台时,我应该使用 MethodChannel 打开
我正在编写一个原生插件,在某些情况下,它必须调用应用程序的 Flutter 部分中的函数,该插件是用 Dart 编写的。它是如何实现的,解释如下: https://flutter.io/platfor
我有一个 flutter 项目(插件),它也使用一些 native java 代码。为了在 dart 和 java 之间进行通信,我使用了 MethodChannel.invokeMethod。这在
我正在编写一个原生插件,在某些情况下,它必须调用应用程序的 Flutter 部分中的函数,用 Dart 编写。它是如何实现的,在这里解释: https://flutter.io/platform-ch
我正在尝试这里的示例 https://flutter.dev/docs/development/platform-integration/platform-channels#step-1-create
我有一个 Flutter 项目,试图在 Flutter 和 iOS Native 之间建立双向通信。到目前为止,它从 Flutter 到 iOS 都运行良好,但反之则无声。当我从 iOS 调用该方法时
好吧,我正在尝试使用 PlatformChannels 从 flutter 导入 Java 代码,我在 Ubuntu 上并且收到该错误,也许这是一个 Java 错误,请创建我的项目 flutter c
在开始我的问题之前,我想指出这个问题并不相似。 Difference between writing platform specific code vs dart:ffi code .在这里,发问者问
我是一名优秀的程序员,十分优秀!