我们在介绍原生与Flutter混编的时候已经介绍了其中一种通信方式:MethodChannel;这只是其中一种;在Flutter中与原生通信的channel有三种:
MethodChannel:传递方法的调用BasicMessageChannel:持续通讯,收到消息之后可以回复消息EventChannel:数据流,持续通讯
我们在之前的文章中,已经介绍过MethodChannel的使用方式,此处不再赘述,我们主要介绍一下另外两种的使用方法;
BasicMessageChannel
我们先看一下BasicMessageChannel的构造函数:
const BasicMessageChannel(this.name, this.codec, { BinaryMessenger? binaryMessenger })
name:名字;codec:编解码器;
我们在Flutter代码中创建一个BasicMessageChannel如下:
之后再initState()方法中接收消息:
我们将_messageChannel传递给PageOne页面:
同时,我们将之前写的PageOne页面作如下修改:
在PageOne页面中接收_messageChannel对象,然后通过该对象将TextField输入内容发送给原生端;
接下来,我们在原生端也要添加响应的代码:
在原生的ViewController页面创建FlutterBasicMessageChannel:
在viewDidload方法中,添加监听来接收Flutter的消息:
在touchesBegan方法中,给Flutter发送消息:
我们来看一下运行效果:
