Flutter在Android中的应用

对于Flutter 混合开发比较多,通信必不可少。

一、Channel:

Android与Flutter之间的通信可以通过三种Channel:

  1. EventChannel 仅支持数据单向传递,无返回值。用于数据流的通信,持续通信,收到消息后无法回复此次消息。通常用于 Native 向 Dart 的通信。

  2. MethodChannel支持数据双向传递,有返回值。用于传递方法调用,一次性通信。通常用于 Dart 调用 Native 的方法。

  3. BasicMessageChannel支持数据双向传递,有返回值。

三种Channel之间互相独立,各有用途,但它们在设计上却非常相近。每种Channel均有三个重要成员变量:

参数:

  • name: String类型,代表Channel的名字,也是其唯一标识符。
  • messager:BinaryMessenger类型,代表消息信使,是消息的发送与接收的工具。
  • codec: MessageCodec类型或MethodCodec类型,代表消息的编解码器。

(一) channel name 唯一标识

需要两段一致,且唯一。具体用处见下面

(二)  BinaryMessenger 消息快递员

定义:三种channel与Flutter通信的工具,都是BinaryMessager

可接纳数据:二进制格式数据

端上表现形式:
Android:FlutterNativeView 接口;   Ios:FlutterBinaryMessenger协议

运行流程:

初始化Channel,向Channel注册处理消息的Handler时,会生成一个与之对应的BinaryMessageHandler,并以channel name(上文提到的)为key,注册到BinaryMessenger中。

当Flutter端发送消息到BinaryMessenge

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值