第三百八十四回

【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

实现方法

  1. 在Flutter中创建通道
  2. 监听通道中的方法或者事件;
  3. 在原生平台的代码中获取通道;
  4. 给通道设置监听器,在监听器实现原生平台上特有的功能;
    上面的步骤比较抽象,不容易理解,我们会在后面的章回中给出详细的示例代码,这样方便大家理解上面的实现方法。Flutter提供了三种类型的通道,每种通道的示例
    代码也不一样,因此我们不在这里列出示例代码,下面三种通道的概念和功能:
  • MethodChannel: 主要通过方法实现通信功能,可以通过方法的参数传递数据。它可以进行双向通信;
  • EventChannel:主要用于消息类通信功能,它只能通过原生平台向Flutter程序发送消息,属于单向通信;
  • BasicMessageChannel:主要通过消息实现通信功能,只能传递简单的数据,它可以进行双向通信;
    前面两种通道使用的范围比较广,因此我们将在后面章回中介绍这两种通道,第三种通道可以使用第一种通信来代替,因此我们将不再介绍该通道的使用方法。

经验总结

最后,我们对本章回介绍的内容做一个总结:Flutter官方提供通道功能,通过该功能可以实现Flutter程序和原生程序之间的通信。通道是一个泛称,依据通道的功能
可以将其分为三大类。通道功能主适用于在已有的Flutter程序中使用部分原生功能。如果在原生项目中使用Flutter相关的功能,那么推荐在原生项目中集成Flutter
模块,如何集成?我们在第一个小节中给了说明,并且提供了官方给的链接。
看官们,有关"Flutter与原生平台通信"的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513561.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣--动态规划64.最小路径和

思路分析: 基本思路: 本算法采用动态规划的思想,通过构建一个额外的二维矢量 dp 来存储每个位置的最小路径和。最终目标是求得右下角位置的最小路径和,即整个网格的最小路径和。 初始化: 初始化矢量的行数和列数&…

软件测试--性能测试实战篇

软件测试--性能测试实战篇 项目介绍和部署1. 轻商城项目介绍1.1 背景1.2 简介2. 项目功能架构3. 项目技术架构4. 熟悉数据库设计5. 轻商城项目搭建5.1 准备工作5.2 项目搭建步骤性能测试需求分析1. 性能测试需求分析1.1 如何获取有效的需求2. 性能测试点的提取2.1 性能测试点的…

基于springboot+vue的精简博客系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

网工内推 | 国企运维,年薪最高30W,RHCE认证优先

01 上海华力微电子有限公司 招聘岗位:系统运维资深/主任工程师 职责描述: 1、负责IT基础设施(包括服务器、存储、中间件等系统基础技术平台)的设计建设和日常运维管理; 2、负责生产、开发和测试环境的技术支持&#x…

边缘计算网关在智能工业园区中的的应用及其优势-天拓四方

边缘计算网关是一种部署在网络边缘的设备,它具备数据采集、处理、存储和传输等功能。通过集成传感器、执行器、通信模块和计算单元,边缘计算网关能够实现对物联网设备的实时监控和控制,同时优化数据传输效率,降低网络延迟&#xf…

julia语言使用PyCall包调用Python代码及Python包

Julia语言虽然好,但是包管理方面和生态环境感觉还有一点小小的缺陷,但是Julia可以调用Python丰富的包,用起来很方便。 安装PyCall 在安装之前先确认下Julia和Python的版本,我使用的稳定版本的 Julia1.6.7,Python版本是…

基于深度学习的人员指纹身份识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 指纹图像预处理与特征提取 4.2 卷积神经网络架构 4.3 特征编码与匹配 4.4 损失函数与训练 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程…

01:HAL库---时钟

一:前言 我们使用的是STM32F103CT86的型号 1:介绍 时钟在在我们的单片机中非常重要,相当于我们的人类的心脏;简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波; 三种不同的时钟…

UE5 UE4 开发常用工具AssetDeveTool

AssetDeveTool工具,支持UE5 5.0-.5.3 UE4 4.26/4.27 下载链接: 面包多 https://mbd.pub/o/bread/ZZubkphu 工坊: https://gf.bilibili.com/item/detail/1104960041 包含功能: 自动化批量展UV功能 快速选择功能 自动化批量减面功能…

Docker容器化解决方案

什么是Docker? Docker是一个构建在LXC之上,基于进程容器的轻量级VM解决方案,实现了一种应用程序级别的资源隔离及配额。Docker起源于PaaS提供商dotCloud 基于go语言开发,遵从Apache2.0开源协议。 Docker 自开源后受到广泛的关注和…

07 系统的线性时不变特性

各位看官,大家好!本讲为《数字信号处理理论篇》07 系统的线性时不变特性。(特别提示:课程内容为由浅入深的特性,而且前后对照,不要跳跃观看,请按照文章或视频顺序进行观看。 从本讲开始开始为大…

python | Python 中检查一个数字是否是三态数

本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。 原文链接:Python 中检查一个数字是否是三态数 在数学中,三态数(Triangular Number)是一种特殊的数列,它是由自然数按…