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端方法,并获取数据的主要内容,如果未能解决你的问题,请参考以下文章
12-4全栈皆宜Flutter Plugin开发指南-Dart端实现
FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )
FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )