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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 通信场景 | Channel 通信机制 | Channel 支持的通信数据类型 | Channel 类型 )相关的知识,希望对你有一定的参考价值。





一、Flutter 和 Native 应用之间的通信场景



Flutter 和 Native 应用 之间的通信场景 :

① Native → \\rightarrow Flutter ( 初始化 ) : Native 模块中向 Flutter 模块传递 初始化数据 initParams ; 如 : 在 Activity 中迁入 FlutterFragment , 可以传 initParams 初始化数据 ;

② Native → \\rightarrow Flutter ( 运行中 ) : Native 模块在运行中 , 主动向 Flutter 模块传递数据 ; 如 : 收集了一些传感器数据 , 实时传递给 Flutter 模块 ;

③ Flutter → \\rightarrow Native : Flutter 模块 向 Native 模块传递数据 ;

④ Flutter ↔ \\leftrightarrow Native : Flutter 模块 与 Native 模块 双向传递数据 ;

这里的 Native 应用指的是 androidios 的原生应用 ;





二、Flutter 和 Native 的 Channel 通信机制



Flutter 和 Native 之间的通信 , 需要通过 Channel 完成 ;

如下图所示 , Flutter 中的消息 , 通过 平台通道 Channel 发送给 Android 中的 Activity , 然后在 Native 模块中再进行具体的分发 ;





三、Channel 通信机制支持的数据类型



Flutter 和 Native 的 Channel 通信所支持的数据类型 :





四、Channel 类型



Flutter 中有 3 3 3 种不同类型的 Channel 平台通道 :

① BasicMessageChannel : 传递 字符串 / 半结构化 信息 ; 该类型 Channel 可进行持续通信 ;

② MethodChannel : 跨 Native / Flutter 平台调用对方的方法 ; 该类型 Channel 只能进行一次通信 ;

③ EventChannel : 数据流通信 ; 数据流是 EventStreams ; 该类型 Channel 可进行持续通信 ;

BasicMessageChannel 和 EventChannel 都可以持续通信 , 但是 BasicMessageChannel 发送消息后 , 还可以接受对方回复的消息 , EventChannel 只能向对方发送消息 , 不能接受对方反馈消息 ;





五、相关资源



参考资料 :


重要的专题 :


博客源码下载 :

以上是关于FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 通信场景 | Channel 通信机制 | Channel 支持的通信数据类型 | Channel 类型 )的主要内容,如果未能解决你的问题,请参考以下文章

FlutterFlutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 )

FlutterFlutter 混合开发 ( Dart 代码调试 | Flutter 单独调试 | 混合模式下 Flutter 调试 )

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

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

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

FlutterFlutter 混合开发 ( 安卓端向 Flutter 传递数据 | FlutterFragment 数据传递 | FlutterActivity 数据传递 )