前语
方法通道(MethodChannel)处理的是Flutter与原生体系之间的逻辑通讯问题。
途径视图(PlatformView)处理的是Flutter与原生体系之间的视图复用问题。
开发工具:AndroidStudio Chipmunk
运用MethodChannel 完结Android回来键退到后台,一同将其做成一个简略的插件
1、先建一个创建一个FlutterPlugin项目
2、挑选Flutter插件
PS:新老版其他AS界面是不相同的,老版其他界面是长这样
3、创建项目,首要看以下目录
4、先看android目录下的UntitledPlugin文件
首要关注onMethodCall
方法,这个方法接收由flutter那儿传过来的音讯。
比方当时自动生成的 getPlatformVersion 音讯,就是获取体系版其他方法,通过result.success() 回来数据。
5、咱们现在是要增加一个方法,用于点击回来键时退到桌面
咱们这儿只需求执行moveTaskToBack() 即可,不需求像getPlatFormVersion音讯相同回来数据,所以不需求调用result.success() 。
此刻,有个问题就是moveTaskToBack是Activity的方法,需求获取activity,此刻只需继承activityAware。
然后在onAttachedToActivity中获取即可。
到此,原生的代码现已写完了。
6、接下来开始处理flutter的代码
尽管有三个自动生成的类,但其实就是Untitled调用MethodChannelUntitled,而MethodChannelUntitled又是完结UntitledPlatform接口。
MethodChannelUntitled
则是首要代码完结的当地,现在咱们增加一个回来桌面的方法backDeskTop。
在UntitledPlatform中也参加抛反常的代码。
之后在Untitled里写供外部调用的方法。
之后外部调用即可。
至此,在做原生交互的一同,又完结了一个简略的插件。
当时插件仅仅一个简略的单向通讯,flutter调用原生,原生不需求再回来数据给flutter。
比如尽管简略,不过思路原理是相同的,留心写法即可。
运用PlatformView 完结网络图片由Glide加载,一同将其做成一个简略的插件
针对上之前一篇文章的问题# Flutter网络缓存图片插件CachedNetworkImage冷启动加载延时问题
目前的处理计划是运用原生图片加载框架,以处理冷启动加载延迟问题。
1、继承PlatformView ,在结构方法里完结一个imageView,然后在里面参加Glide加载的代码
2、在getView()方法里回来imageViwe
3、其他逻辑处理根本跟methodChannel差不多
4、在flutter的代码里分别用UiUiKitView和AndroidView加载即可
参看
图片加载插件参看了github.com/Yingzi-Tech… 。
不过该插件还不可完善,一些特色需求自己扩展,如图片的ScaleType特色不可,没有占位图和过错图的处理。