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

时间: 2024-10-06 15:55:09

Flutter Native调用Dart端方法,并获取数据的相关文章

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE htm

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

问题代码如下: var result=repository.QueryOver<modal>() .Where(p=>p.Code==Code) .OrderBy(p=>p.ID).Asc .Skip(pageSize*(page-1)) .Take(pageSize).List() 当设置page=1,pageSize=10时,获取数据正常:当设置的page大于1时,获取不到任何数据:原因尚未找到. 解决办法:修改代码如下 var result= repository.Query

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//

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

具体首先 安卓端提供MainActivity 输入文本,点击按钮 最终把参数传递到dart上 dart端接收 首先要导入ui的包 然后就可以使用window,window里面有个defaultRouteName 这个就是在初始化flutter模块的时候传递过来的initRoute参数 第二个实例 分别通过两种不同的channel来发送消息. 首先这里提供了一个eventChannel的plugin.他实现了StreamHandler接口. 用于监听我们dart端传来的消息 这种场景是持续通信 d

JSF页面中使用js函数回调后台bean方法并获取返回值的方法

由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者. 相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料.在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:http:

Swift - 后台获取数据(Background Fetch)的实现

前面讲了如何让程序申请后台短时运行.但这个额外延长的时间毕竟有限.所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知. 1,后台获取介绍 后台获取(Background Fetch)是为了那些需要定期更新的应用程序设计的,比如天气应用,新闻客户端,社交网络应用程序等.在启动后台获取之后,应用程序可以在后台被唤醒,在后台获取最新信息,以便在用户将应用程序转到前台时能够立即显示这些信息. 2,后台获取功能开启 首先在选中项目,在Capabilities(功能)选项卡,启用Backgr

highcharts动态获取数据生成图表问题

动态获取数据说白点就是从后台传值到前台,前台把这些值赋值给x轴与y轴.  柱状图的动态传值: //获取后台数据 var x = [];//X轴 var y = [];//Y轴 var xtext = [];//X轴TEXT var color = ["#FFB6C1","#DC143C","#C71585","#D8BFD8","#8B008B","#4B0082","#6A5

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

开发flutter的插件,首先来定义Dart端的接口. 创建plugin目录 创建类 这里需要用到dart端和native端通讯的channel.首先需要导入services的包 指定channe的名字要和native端统一,否则找不到 提供几个接口. 首先是start方法,参数params为可选的 停止录音的接口.和取消录音的方法 结束 原文地址:https://www.cnblogs.com/wangjunwei/p/12311152.html

Android各种获取代码调用栈的方法[补]

打印调用栈不用说,基本上每位开发者都会用到,讨论几个方法,以前也说过,http://blog.csdn.net/freshui/article/details/9456889 再次简单整理一下吧,啰嗦就啰嗦了 :) 基本分两大类,一类是静态的,要把打印语句插入到代码中,一类是动态的,需要看的时候,查看一下,实时观测各线程调用栈情况. 静态方法 1. Java中打印调用栈 比较简单,利用Throwable,直接log中打印出来: [java] view plain copy Log.d(TAG,