前语

方法通道(MethodChannel)处理的是Flutter与原生体系之间的逻辑通讯问题。

途径视图(PlatformView)处理的是Flutter与原生体系之间的视图复用问题。

开发工具:AndroidStudio Chipmunk

运用MethodChannel 完结Android回来键退到后台,一同将其做成一个简略的插件

1、先建一个创建一个FlutterPlugin项目

Flutter原生交互及简略插件的开发

2、挑选Flutter插件

Flutter原生交互及简略插件的开发

Flutter原生交互及简略插件的开发

PS:新老版其他AS界面是不相同的,老版其他界面是长这样

Flutter原生交互及简略插件的开发

3、创建项目,首要看以下目录

Flutter原生交互及简略插件的开发

4、先看android目录下的UntitledPlugin文件

Flutter原生交互及简略插件的开发

首要关注onMethodCall方法,这个方法接收由flutter那儿传过来的音讯。

比方当时自动生成的 getPlatformVersion 音讯,就是获取体系版其他方法,通过result.success() 回来数据。

5、咱们现在是要增加一个方法,用于点击回来键时退到桌面

Flutter原生交互及简略插件的开发

咱们这儿只需求执行moveTaskToBack() 即可,不需求像getPlatFormVersion音讯相同回来数据,所以不需求调用result.success() 。

此刻,有个问题就是moveTaskToBack是Activity的方法,需求获取activity,此刻只需继承activityAware。

Flutter原生交互及简略插件的开发

然后在onAttachedToActivity中获取即可。

Flutter原生交互及简略插件的开发

到此,原生的代码现已写完了。

6、接下来开始处理flutter的代码

Flutter原生交互及简略插件的开发

Flutter原生交互及简略插件的开发

Flutter原生交互及简略插件的开发

尽管有三个自动生成的类,但其实就是Untitled调用MethodChannelUntitled,而MethodChannelUntitled又是完结UntitledPlatform接口

MethodChannelUntitled则是首要代码完结的当地,现在咱们增加一个回来桌面的方法backDeskTop。

Flutter原生交互及简略插件的开发

在UntitledPlatform中也参加抛反常的代码。

Flutter原生交互及简略插件的开发

之后在Untitled里写供外部调用的方法。

Flutter原生交互及简略插件的开发

之后外部调用即可。

Flutter原生交互及简略插件的开发

至此,在做原生交互的一同,又完结了一个简略的插件。

当时插件仅仅一个简略的单向通讯,flutter调用原生,原生不需求再回来数据给flutter。

比如尽管简略,不过思路原理是相同的,留心写法即可。

运用PlatformView 完结网络图片由Glide加载,一同将其做成一个简略的插件

针对上之前一篇文章的问题# Flutter网络缓存图片插件CachedNetworkImage冷启动加载延时问题

目前的处理计划是运用原生图片加载框架,以处理冷启动加载延迟问题。

1、继承PlatformView ,在结构方法里完结一个imageView,然后在里面参加Glide加载的代码

Flutter原生交互及简略插件的开发

2、在getView()方法里回来imageViwe

Flutter原生交互及简略插件的开发

3、其他逻辑处理根本跟methodChannel差不多

Flutter原生交互及简略插件的开发

Flutter原生交互及简略插件的开发

4、在flutter的代码里分别用UiUiKitView和AndroidView加载即可

Flutter原生交互及简略插件的开发

参看

图片加载插件参看了github.com/Yingzi-Tech… 。

不过该插件还不可完善,一些特色需求自己扩展,如图片的ScaleType特色不可,没有占位图和过错图的处理。