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

前端之家收集整理的这篇文章主要介绍了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”:

  1. String text = "whatever";
  2.  
  3. Future<Null> _getBatteryLevel(text) async {
  4. String batteryLevel;
  5. try {
  6. final String result = await platform.invokeMethod('getBatteryLevel',{"text":text});
  7. batteryLevel = 'Battery level at $result % .';
  8. } on PlatformException catch (e) {
  9. batteryLevel = "Failed to get battery level: '${e.message}'.";
  10. }
  11.  
  12. setState(() {
  13. _batteryLevel = batteryLevel;
  14. });

}

2.在RandomFunction()之后获取响应“batterylevel”;

  1. public void onMethodCall(MethodCall call,MethodChannel.Result result) {
  2. if (call.method.equals("getBatteryLevel")) {
  3.  
  4. text = call.argument("text");
  5. String batteryLevel = RandomFunction(text);
  6.  
  7. if (batteryLevel != null) {
  8. result.success(batteryLevel);
  9. } else {
  10. result.error("UNAVAILABLE","Battery level not available.",null);
  11. }
  12. } else {
  13. result.notImplemented();
  14. }
  15. }

希望这可以帮助!

猜你在找的Android相关文章