【发布时间】:2018-08-19 11:30:22
【问题描述】:
我已经开始学习 Flutter。我正在尝试使用 MethodChannel 和 MethodCall 与 Android 平台进行通信。我不知道如何将参数传递给 Android 代码。
下面是我的代码。
// dart
void _onClick() async {
var parameters = {'image':'starry night'};
await platform.invokeMethod('showToast', new Map.from(parameters));
}
// kotlin
MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
Log.d("MainActivity", ">> ${call.method}, ${call.arguments}")
when (call.method) {
"showToast" -> {
showToast("toast")
}
else -> {
Log.d("MainActivity", "fail");
}
}
我可以通过我打印的日志消息检查我传递的争论值。
{image=starry night}
但我不知道如何解析为地图对象。
【问题讨论】:
-
您是否尝试将
call.arguments转换为Map?我不确定你的问题是什么...... -
@StefanGolubović 谢谢
val arguments = call.arguments as java.util.HashMap<String, String>工作正常。