欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/6/17 编程问答 4 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 通信场景 | Channel 通信机制 | Channel 支持的通信数据类型 | Channel 类型 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、Flutter 和 Native 应用之间的通信场景
  • 二、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 应用指的是 Android 或 iOS 的原生应用 ;





二、Flutter 和 Native 的 Channel 通信机制



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

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





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



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





四、Channel 类型



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

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

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

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

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





五、相关资源



参考资料 :

  • Flutter 官网 : https://flutter.dev/
  • Flutter 插件下载地址 : https://pub.dev/packages
  • Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )
  • 官方 GitHub 地址 : https://github.com/flutter
  • Flutter 中文社区 : https://flutter.cn/
  • Flutter 实用教程 : https://flutter.cn/docs/cookbook
  • Flutter CodeLab : https://codelabs.flutter-io.cn/
  • Dart 中文文档 : https://dart.cn/
  • Dart 开发者官网 : https://api.dart.dev/
  • Flutter 中文网 : https://flutterchina.club/ , http://flutter.axuer.com/docs/
  • Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )
  • GitHub 上的 Flutter 开源示例 : https://download.csdn.net/download/han1202012/15989510
  • Flutter 实战电子书 : https://book.flutterchina.club/chapter1/
  • Dart 语言练习网站 : https://dartpad.dartlang.org/

重要的专题 :

  • Flutter 动画参考文档 : https://flutterchina.club/animations/

博客源码下载 :

  • GitHub 地址 : ( 随博客进度一直更新 , 有可能没有本博客的源码 )

    • Flutter Module 工程 : https://github.com/han1202012/flutter_module
    • Android 应用 : https://github.com/han1202012/flutter_native
    • 注意 : 上面两个工程要放在同一个目录中 , 否则编译不通过 ;
  • 博客源码快照 : https://download.csdn.net/download/han1202012/21670919 ( 本篇博客的源码快照 , 可以找到本博客的源码 )

总结

以上是生活随笔为你收集整理的【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 通信场景 | Channel 通信机制 | Channel 支持的通信数据类型 | Channel 类型 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。