2022-02-05

Flutter插件开发(六):总结

  Flutter与Native的通信,有3个不同类型的Channel,它们分别是:
  1.MethodChannel
  通常用于调用Native中的某个方法;
  2.EventChannel
  用于数据流(event streams)的通信。有监听功能,比较经典的例子,如电量变化之后直接推送数据给flutter端;
  3.BasicMessageChannel
  用于传递字符串和半结构化的信息,这个用的比较少.
  下面通过一张表格对上述的3种通道类型,做一个直观的比较:

通道名称 使用场景 交互方向 BinaryMessenger(消息信使) Codec(编解码器) Handler(消息处理器)
MethodChannel 用于调用Native中的某个方法 native⇌flutter BinaryMessenger MethodCodec MethodCallHandler
EventChannel 用于数据流的通信 native→flutter BinaryMessenger MethodCodec StreamHandler
BasicMessageChannel 用于传递字符串和半结构化的信息 native⇌flutter BinaryMessenger MessageCodec MessageHandler

  补充:
  1.Flutter定义了2种编解码器:MethodCodecMessageCodec.其中:
  MethodCodec有2种实现,分别是: JSONMethodCodec和StandardMethodCodec.
  MessageCodec有4种实现,分别是:JSONMethodCodec,StandardMethodCodec, BinaryCodec和StringCodec.

最后附上demo链接:https://github.com/shijia2118/flutter_platform_channel

你可能感兴趣的:(2022-02-05)