Flutter混合开发(三):Android与Flutter之间通信详细指南

  • MethodChannel:用于传递方法调用,一次性通信。通常用于Dart调用Native的方法。

  • EventChannel:用于数据流的通信,持续通信,收到消息后无法回复此次消息。通常用于Native向Dart的通信。

下面我们就来看看这三种Channel通信方式的具体使用和介绍。

BasicMessageChannel

======================================================================================

Android端的相关方法:

BasicMessageChannel(BinaryMessenger messenger, String name, MessageCodec codec)

  • messenger参数是消息信使(FlutterView),是消息发送和接受的工具。

  • name参数是channel的名字也是其唯一标识,要和Dart端统一。

  • codec是消息编解码器,也需要和Dart端统一。它的作用就是将消息在发送的时候进行加密,dart端收到消息后在进行解密,传递的都是二进制数据。它有四种类型:BinaryCodec、StringCodec、JSONMessageCodec、StandardMessageCodec,四种类型均属于MessageCodec范畴。如不指定默认是StandardMessageCodec。

当我们需要接受来自Dart端发送的消息时使用setMessageHandler方法:

void setMessageHandler(BasicMessageChannel.MessageHandler handler)

参数handler是消息处理器,配合BinaryMessenger来完成对消息的处理。它是一个接口,具体的实现在onMessage方法中:

public interface MessageHandler {

void onMessage(T message, BasicMessageChannel.Reply reply);

}

参数message即为Dart发送的数据, reply是用于回复消息的回调函数,提供reply.reply(“”)设置回复的内容。

上面讲的是接受Dart端的消息,那么Native端主动发送消息则是使用send方法,它有两个重载方法:

void send(T message)

void send(T message, BasicMessageChannel.Reply callback)

参数message即为要发生给Dart的数据,callback回调则是用于接收Dart端收到消息后的回复信息。

Dart端相关方法:

const B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值