Flutter与Android交互

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值