Flutter MethodChannel、EventChannel和amp;基本信息频道?

Flutter MethodChannel、EventChannel和amp;基本信息频道?,flutter,Flutter,在颤振中,有三种类型的平台通道,我想知道它们之间的区别。这里有一个链接,可以为您提供一个很好的解释 基本上有两种主要类型: 方法通道:设计用于跨Dart和Java/Kotlin或Objective-C/Swift调用命名代码段。(从颤振到平台) 事件通道:专门的平台通道,用于将平台事件作为Dart流暴露给颤振的用例。(从平台到颤振)这些通道用于本机代码(项目中的插件或本机代码)和颤振框架之间的通信 方法频道 MethodChannel用于“”。这意味着您可以使用此通道在本机端访问,并可以返回值,

在颤振中,有三种类型的平台通道,我想知道它们之间的区别。

这里有一个链接,可以为您提供一个很好的解释

基本上有两种主要类型:

方法通道:设计用于跨Dart和Java/Kotlin或Objective-C/Swift调用命名代码段。(从颤振到平台)


事件通道:专门的平台通道,用于将平台事件作为Dart流暴露给颤振的用例。(从平台到颤振)

这些通道用于本机代码(项目中的插件或本机代码)和颤振框架之间的通信

方法频道
MethodChannel
用于“”。这意味着您可以使用此通道在本机端访问,并可以返回值,反之亦然。
例如,您可以通过这种方式调用检索设备名称的方法

事件频道 用于流式传输数据。这将导致在事物的Dart端,并且能够从本机端馈送该流。
如果您希望在每次特定事件发生时(例如,当设备的wifi连接发生变化时)发送数据,此选项非常有用

基本消息通道 这可能不是您想要使用的东西
BasicMessageChannel
用于使用密码对消息进行编码和解码。
这方面的一个例子是使用JSON或二进制数据。这只是一个更简单的版本,因为您的数据有一个清晰的类型(编解码器),您将不会发送多个参数等。

清除内容,让我添加更多内容

方法频道

这更像是RPC调用。你从你的flatter应用程序调用一个方法到本机代码,本机代码会做一些事情,最后会以成功或错误来响应。此呼叫可能是为了获取当前电池状态、网络信息或温度数据。一旦本机端做出响应,它将无法再发送更多信息,直到下一次呼叫

Method Channel provides platform communication using asynchronous method calls.
注意:-如果需要,方法调用也可以反向发送 方向,平台充当实现方法的客户端 飞镖

事件频道

这更像是
反应式编程
,其中平台通信使用
异步事件流
。这些事件可以是您需要流式传输到颤振应用程序的任何事件。将本机代码中的数据流式传输到颤振应用程序,例如持续更新BLE或WiFi扫描结果、加速计和陀螺仪,甚至是密集数据采集中的定期状态更新

基本信息频道


它提供与BinaryMessages类似的基本消息传递服务,但支持发送字符串或半结构化消息。消息在发送前被编码成二进制,接收到的二进制消息被解码成Dart值。所使用的必须与平台插件所使用的兼容。

方法通道也可用于从本机调用Dart端的方法(和返回值)。@RichardHeap有任何示例吗?@Alexufo请参阅:@RichardHeap我们可以使用它将数据从本机发送到Dart吗?我想从本机屏幕上的按钮发送数据