8-9 Flutter与Native通信-Android端实战

Posted 青春是课桌下风干的鼻屎,是借了不还的直尺。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8-9 Flutter与Native通信-Android端实战相关的知识,希望对你有一定的参考价值。







具体首先

安卓端提供MainActivity


输入文本,点击按钮

最终把参数传递到dart上

dart端接收

首先要导入ui的包

然后就可以使用window,window里面有个defaultRouteName 这个就是在初始化flutter模块的时候传递过来的initRoute参数

 

第二个实例



分别通过两种不同的channel来发送消息。


首先这里提供了一个eventChannel的plugin。他实现了StreamHandler接口。

用于监听我们dart端传来的消息



这种场景是持续通信

dart端实现

首先需要导入service

在初始化eventChannel传递的名字,和native原生那端要保持一致。

这是原生端的名字



注册监听,_onToDart

当naive端发送消息的时候,dart端会收到消息的回调。

BasicMessageChannel的实现





回调,接收到消息

MethodChannelPlugin



当dart端调用native端 这里是回调。根据dart端传来的不同的方法,这里来做处理。

传递flutterView获取到context。转为Activity

上面是原生,下面是flutter


这里放了两个单选按钮。用于选择我们不同的channel





调用不同的channel发送消息

 

dart端

dart端进行调试


安卓端进行debug


在这里加个断点


随便输入文字。native向dart端发送消息。


走的是basicMessaggeChannel发送消息。

然后就进入了dart端代码。收到native传递过来的

往下走,这里向native回传消息




native收到了dart端的消息

这就是native-----dart----native

 

结束

 

以上是关于8-9 Flutter与Native通信-Android端实战的主要内容,如果未能解决你的问题,请参考以下文章

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 通信场景 | Channel 通信机制 | Channel 支持的通信数据类型 | Channel 类型 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 EventChannel 通信 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 MethodChannel 通信 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 BasicMessageChannel 通信 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | Android 端实现 BasicMessageChannel 通信 )

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 MethodChannel 通信 )