zoukankan      html  css  js  c++  java
  • 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);
                }
            });
  • 相关阅读:
    排序之选择排序
    排序之冒泡排序
    NOIP 模拟 $22; m d$
    NOIP 模拟 $20; m z$
    NOIP 模拟 $20; m y$
    NOIP 模拟 $20; m 玩具$
    NOIP 模拟 $21; m Median$
    NOIP 模拟 $21; m Park$
    NOIP 模拟 $21; m Game$
    NOIP 模拟 $19; m w$
  • 原文地址:https://www.cnblogs.com/hbolin/p/11169020.html
Copyright © 2011-2022 走看看