如果需要与特定的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(); } }
希望这可以帮助!