MethodChannel、EventChannel 和 BasicMessageChannel 有什么区别?

jam*_*eng 12 flutter

在 Flutter 中,平台通道分为三种,我想知道它们之间的区别。

cre*_*not 25

这些通道用于在本机代码(项目内的插件或本机代码)和 Flutter 框架之间进行通信。

方法通道

AMethodChannel用于“使用异步方法调用与平台插件通信”。这意味着您可以使用此通道调用本机端的方法,并且可以返回一个值,反之亦然。
例如,您可以调用以这种方式检索设备名称的方法。

事件通道

AnEventChannel用于流式传输数据。这导致具有Stream飞镖的东西侧,并能够从本机侧进料该流。
如果您想在每次发生特定事件时发送数据,例如当设备的 wifi 连接发生变化时,这将非常有用。

基本消息通道

这可能不是您想要使用的东西。BasicMessageChannel用于使用指定的编解码器对消息进行编码和解码。
这方面的一个例子是使用 JSON 或二进制数据。它只是一个更简单的版本,因为您的数据具有明确的类型(编解码器),并且您不会发送多个参数等。