1. Flutter 调用 Android 原生代码
Flutter 端代码
//定义channel
static const platform = MethodChannel('testChannel');
//... 其它代码
//调用对应的方法
var data = platform.invokeMethod("fluttr2Android");
//接收返回值
data.then((value)
{
print(value);
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text(value)));
});
Android 端
GeneratedPluginRegistrant.registerWith(flutterEngine);
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "testChannel")
.setMethodCallHandler{call, result ->
//判断flutter传来的方法,然后返回值
if (call.method == "fluttr2Android") {
result.success("fluttr2Android success")
}
}
2. Android原生 调用 Flutter代码
Flutter 端
//定义channel
static const platform = MethodChannel('testChannel');
//....其它代码
platform.setMethodCallHandler((call) {
switch (call.method) {
case "Android2Flutter":
{
//获取来自Android端发送的参数
String msg = call.arguments['msg'];
String value = "Android2Flutter args: " + msg;
print(value);
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text(value)));
}
}
return Future(() => "接受成功");
});
Android 端
GeneratedPluginRegistrant.registerWith(flutterEngine);
// 调用 Flutter 中的方法,传递参数
val params = mapOf(
"msg" to "这是来自 Android 端的参数"
)
//调用Flutter端方法
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "testChannel")
.invokeMethod("Android2Flutter", params)