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,所以命名空间相同会干扰通信,当然这个命名空间根据习惯定义。

Flutter学习笔记(六)Flutter与原生的互相通信_第1张图片

因为它是异步调用,所以需要Future。当然也能接收原生的回调值。下面看原生接收

Flutter学习笔记(六)Flutter与原生的互相通信_第2张图片

原生接收端使用的API与Flutter调用端的一致,特别注意命名空间也必须一致。这里可以给result接口给个回调值。

     1.2 Android原生调用Flutter

原生调用Flutter和Flutter调用原生基本相同

Android调用端

Flutter学习笔记(六)Flutter与原生的互相通信_第3张图片

接下来看Flutter接收端

Flutter学习笔记(六)Flutter与原生的互相通信_第4张图片

2、BasicMessageChannel

异步消息传递的方式使Flutter与原生相互通信

Flutter端发送消息

Flutter学习笔记(六)Flutter与原生的互相通信_第5张图片

Android端接收消息

3、EventChannel

异步事件传递方式使Flutter与原生相互通信

Flutter发送端

Flutter学习笔记(六)Flutter与原生的互相通信_第6张图片

Android接收端

Flutter学习笔记(六)Flutter与原生的互相通信_第7张图片

Flutter调用原生,原生调用Flutter,方式一样,大同小异,根据不同需求使用不同的channel。

你可能感兴趣的:(flutter,android)