Flutter学习笔记(六)Flutter与原生的互相通信
我们既然使用Flutter作为UI技术框架,那么就少不了跟原生的通信(Android或者ios,方式类似,本文以Android为例)。
Flutter SDK中给我们提供了三个API,分别是MethodChannel、BasicMessageChannel、EventChannel。
1、MethodChannel
异步方法调用的方式使Flutter与原生相互通信。
1.1 Flutter调用Android
com.pwe.my_flutter_app/m 为命名空间,它会根据这个去对应调用原生channel,所以命名空间相同会干扰通信,当然这个命名空间根据习惯定义。
因为它是异步调用,所以需要Future。当然也能接收原生的回调值。下面看原生接收
原生接收端使用的API与Flutter调用端的一致,特别注意命名空间也必须一致。这里可以给result接口给个回调值。
1.2 Android原生调用Flutter
原生调用Flutter和Flutter调用原生基本相同
Android调用端
接下来看Flutter接收端
2、BasicMessageChannel
异步消息传递的方式使Flutter与原生相互通信
Flutter端发送消息
Android端接收消息
3、EventChannel
异步事件传递方式使Flutter与原生相互通信
Flutter发送端
Android接收端
Flutter调用原生,原生调用Flutter,方式一样,大同小异,根据不同需求使用不同的channel。