MethodChannel、BasicMessageChannel 与EventChannel区别
MethodChannel : 方法通道,Flutter与原生方法相互调用,用于方法调用。常用的api。
BasicMessageChannel : 消息通道,Flutter与原生相互发送消息,用于数据传递。
EventChannel : 事件通道,只能原生发送消息,Flutter接收,用于数据流通信。一对多通知,类似于原生广播。不常用的api。
三种Channel之间互相独立,各有用途,但它们在设计上却非常相近。每种Channel均有三个重要成员变量:
name: String类型,代表Channel的名字,也是其唯一标识符。
messager:BinaryMessenger类型,代表消息信使,是消息的发送与接收的工具。
codec: MessageCodec类型或MethodCodec类型,代表消息的编解码器。
例:MethodChannel(BinaryMessenger messenger, String name, MethodCodec codec)
注:一个Flutter应用中可能存在多个Channel,每个Channel在创建时必须指定一个独一无二的name,Channel之间使用name来区分彼此。当有消息从Flutter端发送
到Platform端时,会根据其传递过来的channel name找到该Channel对应的Handler(消息处理器)。