当前位置: 首页 > 知识库问答 >
问题:

如何将信息从Flatter传递给本地人?

羊新翰
2023-03-14

如果需要与特定的应用编程接口/硬件组件交互,您将如何将信息从Flutter传递回Android/Native代码?

是否有任何事件通道可以以其他方式或类似于回调的方式发送信息?

  1. platform_channel文档指出,“方法调用也可以反向发送,平台充当Dart中实现的方法的客户端。quick_actions插件就是一个具体的例子。”在这种情况下,我看不出本机是如何接收到来自Flatter的消息的

共有3个答案

李开宇
2023-03-14

是的,flutter确实有一个EventChannel类,这正是您要找的。

这里有一个例子,演示了如何实现metodChannelEventChannel。这篇媒体文章展示了如何在flutter中实现EventChannel

希望这有所帮助!

戚良弼
2023-03-14

目标C

call.arguments[@"parameter"]

Android

call.argument("parameter");
公羊浩阔
2023-03-14

这是一个简单的实现展示:

  1. 将字符串值从flutter传递到Android代码
  2. 从Android代码返回响应到flutter

代码基于以下示例:https://flutter.io/platform-channels/#codec

1.传递字符串值“text”:

String text = "whatever";

Future<Null> _getBatteryLevel(text) async {
String batteryLevel;
try {
  final String result = await platform.invokeMethod('getBatteryLevel',{"text":text}); 
  batteryLevel = 'Battery level at $result % .';
} on PlatformException catch (e) {
  batteryLevel = "Failed to get battery level: '${e.message}'.";
}

setState(() {
  _batteryLevel = batteryLevel;
});

}

2.在RandomFunction()之后返回响应“batterylevel”;

 public void onMethodCall(MethodCall call, MethodChannel.Result result) {
                    if (call.method.equals("getBatteryLevel")) {

                        text = call.argument("text");
                        String batteryLevel = RandomFunction(text);

                        if (batteryLevel != null) {
                            result.success(batteryLevel);
                        } else {
                            result.error("UNAVAILABLE", "Battery level not available.", null);
                        }
                    } else {
                        result.notImplemented();
                    }
                }

希望这有帮助!

 类似资料:
  • 我是Flutter和Dart的新手。我有一些来自基于api json的数据,数据的变量称为。我从官方flutter留档中获取了这个示例代码,我希望能够使用变量并替换字符串文本,如下所示: 但是,我在第行标题中遇到了一个错误:const Text(data[index][“name]),,错误是类型常量创建的参数必须是常量表达式。此错误来自Android Studio本身(版本3.2) 但当我使用这

  • 我需要将一些信息从编译脚本传递到模板Haskell中。目前编译脚本将信息保存在系统环境中,所以我只是使用包装在中。是否有更好的方法,例如将一些参数传递给(类似于C预处理器的),或者可能是专门为此设计的方法?

  • 我正在尝试在html WebView中将信息(lattiude,longitority)传递到google map。问题是应用程序没有在NetBeans中启动。它返回说: 使用平台执行C:\Users\Carlos\Documents\NetBeansProjects\OpenPilot\Dist\Run1883323097\OpenPilot.jar\JK1.8.0_05\JRE/bin/Jav

  • 我正在尝试从localStorage获取信息,以传递给应用程序中的数据库。我在控制台中输入“localstorage”,它会显示正确的值,所以我相信它可以在那里进行检索。然而,由于某种原因,我无法得到数据。现在,变量rfidText正在通过键盘输入设置。我想通过抓取LocalStorage中“userid”中的字符串来设置它。下面我有一个评论,我已经尝试了,但不起作用。我在file1中调用loca

  • 问题内容: 上面的带有post请求的curl代码在触发Jenkins构建时绝对可以正常工作。 尝试过: http://xxx.yyy.zzz:5555 / bitbucket-hook?token = auth_token&crumb = xyz_crumb http://xxx.yyy.zzz:5555 / job / job-name / build?token = auth_token&cr