android – 如何将消息从Flutter传递给Native?

如果需要与特定的API /硬件组件进行交互,您如何将Flutter的信息传递回 Android / Native代码?

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

> platform_channel文档指出“方法调用也可以反向发送,平台充当Dart实现的方法的客户端.具体的例子是quick_actions plugin.”在本例中,我没有看到本机端如何从Flutter接收消息.
>看起来像BasicMessageChannel的send()方法可用于将“指定的消息发送到此通道上的平台插件”.任何人都可以提供一个简单的实现示例吗?

解决方法

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

>将字符串值从flutter传递到Android代码
>从Android代码中获取响应以振荡

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

1.Passing字符串值“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();
                    }
                }

希望这可以帮助!

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...