在介绍Platfrom Channel之前,我们要先使用命令新建一个plugin.才能继续往下开展工作。
flutter create --template=plugin --org com.example --platforms=android,ios -a java -i objc stard
本文提供的demo 是Flutter 与iOS交互的过程
简单介绍Platfrom Channel的三个API
一.MethodChannel : Flutter与原生方法相互调用,用于方法掉用。
基本流程MethodChannel 是双向的,此处以flutter调用native为例,native调用flutter是一样的只是角色互调
-
- 以“flutter 调用Navite“ 为例
1.1.1[flutter端] 使用MethodChannel.invokeMethod发起异步调用,调用原生里的方法,等待返回值
1.1.2 Navite 端实现,可以使用handleMethodCall 也可以使用下面的setMethodCallHandler实现。
1.1.3 Navite端如果不想建立多个channle 还可以使用setMethodCallHandler的方式
1.2 以“Navite调用Flutter“为例
1.2.1 原生端使用invokeMethod方法进行异步调用
1.2.2 Flutter 接收原生的方法调用,使用setMethodCallHandler
EventChannel : 原生发送消息,Flutter接收,用于数据流通信,单向通信
原生基本实现如下
举个实际使用场景,比如我要在flutter 端获取到地图的缩放比例以及手机的缩放比例(等比缩放)
_levelChangeHandler主要用来监听事件。主要代码如下
Flutter 实现代码如下