【toc]
我们在上一章回中介绍了Visibility组件相关的内容,本章回中将介绍Flutter与原生平台通信相关的内容.闲话休提,让我们一起Talk Flutter吧。
概念介绍
在移动开发领域以Android和IOS SDK开发出的应用程序叫原生开发,开发同一个程序需要两个平台相关的SDK,有没有使用一个SDK来开发运行于两个平台上方法?答
案是有,这便是RN或者Flutter,它们可以使用一个SDK开发出跨平台的应用程序,不过对于原生平台上特有的功能,它们无能为力,因此需要在它们开发的程序中和使
用原生平台的功能,这便是本章回中将要介绍的内容:Flutter与原生平台通信。Flutter提供了平台通道(channel)来实现与原生平台的通信功能。此外,还可以把
Flutter开发的程序当作一个模块集成到原生项目中运行,毕竟原生平台开发的程序肯定早于Flutter开发的程序,如果不想舍弃原生平台中已有的程序,那么可以使用
这种方法。在这种开发模式下,原生开发和Flutter开发是相互独立的。如何把Flutter项目当作模块集成到原生项目中呢?这个是不是本章回中主要介绍的内容,感兴
趣的看官可以查看官方文档。https://flutter.cn/docs/development/add-to-app
实现方法
- 在Flutter中创建通道
- 监听通道中的方法或者事件;
- 在原生平台的代码中获取通道;
- 给通道设置监听器,在监听器实现原生平台上特有的功能;
上面的步骤比较抽象,不容易理解,我们会在后面的章回中给出详细的示例代码,这样方便大家理解上面的实现方法。Flutter提供了三种类型的通道,每种通道的示例
代码也不一样,因此我们不在这里列出示例代码,下面三种通道的概念和功能:
- MethodChannel: 主要通过方法实现通信功能,可以通过方法的参数传递数据。它可以进行双向通信;
- EventChannel:主要用于消息类通信功能,它只能通过原生平台向Flutter程序发送消息,属于单向通信;
- BasicMessageChannel:主要通过消息实现通信功能,只能传递简单的数据,它可以进行双向通信;
前面两种通道使用的范围比较广,因此我们将在后面章回中介绍这两种通道,第三种通道可以使用第一种通信来代替,因此我们将不再介绍该通道的使用方法。
经验总结
最后,我们对本章回介绍的内容做一个总结:Flutter官方提供通道功能,通过该功能可以实现Flutter程序和原生程序之间的通信。通道是一个泛称,依据通道的功能
可以将其分为三大类。通道功能主适用于在已有的Flutter程序中使用部分原生功能。如果在原生项目中使用Flutter相关的功能,那么推荐在原生项目中集成Flutter
模块,如何集成?我们在第一个小节中给了说明,并且提供了官方给的链接。
看官们,有关"Flutter与原生平台通信"的内容就介绍到这里,欢迎大家在评论区交流与讨论!