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

简介: 【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 模块中再进行具体的分发 ;

image.png






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


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



image.png





四、Channel 类型


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


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


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


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


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



目录
相关文章
|
6月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
659 4
|
3月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
123 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
6月前
|
缓存 前端开发 数据安全/隐私保护
Flutter 框架提供了丰富的机制和方法来优化键盘处理和输入框体验
在移动应用开发中,Flutter 框架提供了丰富的机制和方法来优化键盘处理和输入框体验。本文深入探讨了键盘的显示与隐藏、输入框的焦点管理、键盘类型的适配、输入框高度自适应、键盘遮挡问题处理及性能优化等关键技术,结合实例分析,旨在帮助开发者提升应用的用户体验。
218 6
|
7月前
|
前端开发 JavaScript Android开发
Flutter 与 React Native - 详细深入对比分析(2024 年)
Flutter和React Native是两大跨平台框架,各有优缺点。Flutter性能优越,UI灵活,使用Dart;React Native生态广泛,适合JavaScript开发。
2096 5
Flutter 与 React Native - 详细深入对比分析(2024 年)
|
6月前
|
Dart 安全 编译器
Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析
在 Flutter 开发中,`dynamic` 类型提供了灵活性,但也带来了类型安全性问题。本文深入探讨 `dynamic` 类型及其与其他类型的转换,介绍如何使用 `as` 关键字、`is` 操作符和 `whereType<T>()` 方法进行类型转换,并提供最佳实践,包括避免过度使用 `dynamic`、使用 Null Safety 和异常处理,帮助开发者提高代码的可读性和可维护性。
178 1
|
8月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
598 8
|
8月前
|
JSON Dart Java
flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)
flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)
|
10月前
Flutter-仿携程首页类型切换
文章介绍了使用Flutter构建一个包含TabBarView和自定义TabbarWidget的应用,其中CustomTabbarWidget展示了动态切换和动画效果,TrapezoidClipper则实现了独特的三角形指示器。作者通过代码示例展示了如何在携程类应用中创建可交互的导航界面。
87 0
|
10月前
|
安全 Shell Android开发
Flutter和Native 通信 pigeon
Flutter和Native 通信 pigeon