三种Channel
-
BasicMessageChannel:用于传递字符串和半结构化的信息。持续通信,收到消息后可以回复此次消息,如 Native 将遍历到的文件信息陆续传递到 Dart,在比如:Flutter 将从服务端陆续获取到的信息交给 Native 加工,Native 处理完返回等。
-
MethodChannel:用于传递方法调用(method invocation)。一次性通信:如 Flutter 调用 Native 拍照。
-
EventChannel: 用于数据流(event streams)的通信。持续通信,收到消息后无法回复此次消息,通常用于 Native 向 Dart 的通信,如:手机电量变化,网络变化,陀螺仪,传感器等
这三种Channel之间互相独立,各有用途,但它们在设计上却非常相近。每种Channel均有三个重要成员变量:
- name: String类型,代表Channel的名字,也是其唯一标识符。
- messager:BinaryMessenger类型,代表消息信使,是消息的发送与接收的工具。
- codec: MessageCodec类型或MethodCodec类型,代表消息的编解码器。
网友评论