第一百三十回 Flutter与原生平台通信

文章目录

我们在上一章回中介绍了Visibility组件相关的内容,本章回中将介绍 Flutter与原生平台通信 相关的内容.闲话休提,让我们一起Talk Flutter吧。

概念介绍

在移动开发领域以Android和IOS SDK开发出的应用程序叫原生开发,开发同一个程序需要两个平台相关的SDK,有没有使用一个SDK来开发运行于两个平台上方法?答案是有,这便是RN或者Flutter,它们可以使用一个SDK开发出跨平台的应用程序,不过对于原生平台上特有的功能,它们无能为力,因此需要在它们开发的程序中和使用原生平台的功能,这便是本章回中将要介绍的内容:Flutter与原生平台通信

Flutter提供了平台通道(channel)来实现与原生平台的通信功能。此外,还可以把Flutter开发的程序当作一个模块集成到原生项目中运行,毕竟原生平台开发的程序肯定早于Flutter开发的程序,如果不想舍弃原生平台中已有的程序,那么可以使用这种方法。在这种开发模式下,原生开发和Flutter开发是相互独立的。如何把Flutter项目当作模块集成到原生项目中呢?这个是不是本章回中主要介绍的内容,感兴趣的看官可以查看官方文档

实现方法

  1. 在Flutter中创建通道
  2. 监听通道中的方法或者事件;
  3. 在原生平台的代码中获取通道;
  4. 给通道设置监听器,在监听器实现原生平台上特有的功能;

上面的步骤比较抽象,不容易理解,我们会在后面的章回中给出详细的示例代码,这样方便大家理解上面的实现方法。Flutter提供了三种类型的通道,每种通道的示例代码也不一样,因此我们不在这里列出示例代码,下面三种通道的概念和功能:

  • MethodChannel: 主要通过方法实现通信功能,可以通过方法的参数传递数据。它可以进行双向通信;
  • EventChannel:主要用于消息类通信功能,它只能通过原生平台向Flutter程序发送消息,属于单向通信;
  • BasicMessageChannel:主要通过消息实现通信功能,只能传递简单的数据,它可以进行双向通信;

前面两种通道使用的范围比较广,因此我们将在后面章回中介绍这两种通道,第三种通道可以使用第一种通信来代替,因此我们将不再介绍该通道的使用方法。

经验总结

最后,我们对本章回介绍的内容做一个总结:

  • Flutter官方提供通道功能,通过该功能可以实现Flutter程序和原生程序之间的通信。
  • 通道是一个泛称,依据通道的功能可以将其分为三大类。
  • 通道功能主适用于在已有的Flutter程序中使用部分原生功能。
  • 如果在原生项目中使用Flutter相关的功能,那么推荐在原生项目中集成Flutter模块,如何集成?我们在第一个小节中给了说明,并且提供了官方给的链接。

看官们,有关"Flutter与原生平台通信"的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关推荐
子春一5 小时前
Flutter for OpenHarmony:色彩捕手:基于 CIELAB 色差模型与人眼感知的高保真色彩匹配游戏架构解析
flutter·游戏·架构
ZH15455891316 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
Lionel6896 小时前
Flutter 鸿蒙:获取真实轮播图API数据
flutter
千逐687 小时前
《基于 Flutter for OpenHarmony 的沉浸式天气可视化系统设计与实现》
flutter
一只大侠的侠7 小时前
Flutter开源鸿蒙跨平台训练营 Day8获取轮播图网络数据并实现展示
flutter·开源·harmonyos
sugar_hang7 小时前
Flutter 中的 TCP
flutter
子春一9 小时前
Flutter for OpenHarmony:形状拼图:基于路径几何与空间吸附的交互式拼图系统架构解析
flutter·系统架构
ujainu18 小时前
Flutter + OpenHarmony 游戏开发进阶:用户输入响应——GestureDetector 实现点击发射
flutter·游戏·openharmony
hudawei99618 小时前
TweenAnimationBuilder和AnimatedBuilder两种动画的比较
flutter·ui·动画·tweenanimation·animatedbuilder
ujainu18 小时前
Flutter + OpenHarmony 实现无限跑酷游戏开发实战—— 对象池化、性能优化与流畅控制
flutter·游戏·性能优化·openharmony·endless runner