Flutter Channle 实践

在介绍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是一样的只是角色互调

    1. 以“flutter 调用Navite“ 为例

1.1.1[flutter端] 使用MethodChannel.invokeMethod发起异步调用,调用原生里的方法,等待返回值

Flutter Channle 实践_第1张图片 

1.1.2 Navite 端实现,可以使用handleMethodCall 也可以使用下面的setMethodCallHandler实现。

Flutter Channle 实践_第2张图片

 

1.1.3 Navite端如果不想建立多个channle 还可以使用setMethodCallHandler的方式

Flutter Channle 实践_第3张图片

Flutter Channle 实践_第4张图片 

Flutter Channle 实践_第5张图片 

Flutter Channle 实践_第6张图片 

 

1.2 以“Navite调用Flutter“为例

1.2.1 原生端使用invokeMethod方法进行异步调用

Flutter Channle 实践_第7张图片

 

1.2.2 Flutter 接收原生的方法调用,使用setMethodCallHandler

Flutter Channle 实践_第8张图片

 

EventChannel : 原生发送消息,Flutter接收,用于数据流通信,单向通信

原生基本实现如下

举个实际使用场景,比如我要在flutter 端获取到地图的缩放比例以及手机的缩放比例(等比缩放)

_levelChangeHandler主要用来监听事件。主要代码如下

​​​​​​​Flutter Channle 实践_第9张图片

Flutter Channle 实践_第10张图片 

 

 

Flutter 实现代码如下

Flutter Channle 实践_第11张图片

 

你可能感兴趣的:(Flutter,flutter,Flutter,Channel,Flutter,Native)