Flutter Native调用Dart端方法,并获取数据

参考资料:https://blog.csdn.net/julystroy/article/details/87367520

 

举个例子,我们想从Native端请求Flutter端的一个getFlutterName方法获取一个字符串。在Flutter端你需要给MethodChannel设置一个MethodCallHandler:

platform.setMethodCallHandler(platformCallHandler);

Future<dynamic> platformCallHandler(MethodCall call) async {
    switch (call.method) {
            case "getFlutterName":
            return "Flutter name flutter";
            break;
    }
}

Dart端:核心关键就是直接return 需要返回的数据即可!

 

Java端:就是用CallBack的形式来接收返回的数据:

mChannel.invokeMethod(RCMethodList.MethodCallBackGetUserInfo, userId, new Result() {
            @Override
            public void success(@Nullable Object arg) {
                if (arg instanceof Map) {
                    Map map = (Map) arg;
                    String userId = (String) map.get("userId");
                    String name = (String) map.get("name");
                    String portraitUri = (String) map.get("portraitUrl");
                    UserInfo userInfo = new UserInfo(userId, name, Uri.parse(portraitUri));
                    flutterCallBack.success(userInfo);
                }
            }

            @Override
            public void error(String s, @Nullable String s1, @Nullable Object o) {
                flutterCallBack.error("获取用户信息失败:" + s, null);
            }

            @Override
            public void notImplemented() {
                flutterCallBack.error("flutter 端没有实现getUserInfoByUserId接口", null);
            }
        });

 

转载于:https://www.cnblogs.com/hbolin/p/11169020.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值