我们在介绍原生与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
发送消息:
我们来看一下运行效果: