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

Posted hbolin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
            
        );

 

以上是关于Flutter Native调用Dart端方法,并获取数据的主要内容,如果未能解决你的问题,请参考以下文章

flutter与native交互

Flutter Plugin 调用 Native APIs

12-4全栈皆宜Flutter Plugin开发指南-Dart端实现

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )

8-9 Flutter与Native通信-Android端实战