第一百三十回 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与原生平台通信"的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关推荐
只可远观4 小时前
Flutter目录结构介绍、入口、Widget、Center组件、Text组件、MaterialApp组件、Scaffold组件
前端·flutter
周胡杰4 小时前
组件导航 (HMRouter)+flutter项目搭建-混合开发+分栏效果
前端·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
肥肥呀呀呀5 小时前
flutter Stream 有哪两种订阅模式。
flutter
WDeLiang13 小时前
Flutter - 集成三方库:日志(logger)
flutter·dart
hudawei99613 小时前
flutter缓存网络视频到本地,可离线观看
flutter·缓存·音视频
0wioiw01 天前
Flutter基础()
flutter
肥肥呀呀呀2 天前
flutter 视频通话flutter_webrtc
flutter
明似水2 天前
2025年Flutter项目管理技能要求
flutter
肥肥呀呀呀2 天前
flutter使用命令生成BinarySize分析图
flutter
程序猿阿伟2 天前
《数字分身进化论:React Native与Flutter如何打造沉浸式虚拟形象编辑》
flutter·react native·react.js