流程图
流程图是一种基于节点的可视化编辑器,用于配置响应触发事件而运行的功能。此编辑器简化了创建和管理业务逻辑的过程。
流程图中的控制流是指执行或评估各个语句、指令或函数调用的顺序。正确的控制流对于确定应用如何响应用户输入和事件至关重要。以下是一些关键要素:
- 条件:这些流程包括
if、else if和else流程,可让您的应用根据特定条件做出决策。例如,您可以检查用户是否已登录,然后根据其身份验证状态显示不同的内容。 - 循环:允许您的应用多次重复一系列逻辑。这对于迭代项目列表或重试失败的操作等任务非常有用。
- 动作:在某些情况下,您将执行由特定事件(例如用户交互(例如,点击、双击、长按)或系统事件(例如,页面初始化、页面销毁)触发的函数。了解如何有效地处理此类事件可确保您的应用对用户交互或事件做出适当的反应。
- 并行:多个操作同时执行,彼此独立。这对于可以同时完成且不依赖于彼此结果的任务非常有用。
逻辑或功能是指决定应用如何响应用户操作并与数据交互的核心操作和行为。这可能包括:
- 业务逻辑:这是应用程序的一部分,用于管理现实世界的规则和流程。例如,在电子商务应用程序中,它处理订单、计算价格和管理库存等任务。
- 用户界面逻辑:控制应用的外观和与用户的交互方式。它包括验证表单、在屏幕之间导航以及根据用户操作更新内容等任务。
- 数据逻辑:管理应用程序的数据。它包括从数据库或通过 API 获取、存储、更新和删除数据等任务。

添加流程图
(1)在页面编辑窗口中选中需要添加流程图的小部件
(2)在右侧的属性编辑器中点击【动作】-> 打开动作开关 -> 点击【编辑流程图】

(3)在操作流程编辑器中,选择触发事件并点击+号添加该事件

流程图的执行需要响应触发事件,常见的触发事件有
- 页面销毁:页面销毁时触发,在左侧的【当前页面全局配置】中打开动作流程编辑器进行配置。
- 页面初始化:页面初始化时触发,在左侧的【当前页面全局配置】中打开动作流程编辑器进行配置。
- 单击:点击小部件时触发,通常搭配按钮小部件使用。
- 双击:双击小部件时触发,通常搭配按钮小部件使用。
- 长按:长按小部件时触发,通常搭配按钮小部件使用。
- 状态改变:小部件状态改变时触发,支持滑块、开关、文本输入框等小部件状态改变时的事件。

删除流程图
(1)在页面编辑窗口中选中需要删除流程图的小部件
(2)在右侧的属性编辑器中点击【动作】
(3)删除流程图
方法一、在有流程图的事件中,右侧点击【删除】,只有当该事件存在流程图时才会有删除按钮

方法二、点击【编辑流程图】,在操作流程编辑器中,选择触发事件并点击┇号删除该事件

复制流程图
(1)在页面编辑窗口中选中需要复制流程图的小部件
(2)在右侧的属性编辑器中点击【动作】
(3)在有流程图的事件中,右侧点击【删除】,只有当该事件存在流程图时才会有复制按钮

粘贴流程图
(1)先复制流程图,参考复制流程图
(2)在页面编辑窗口中选中需要粘贴流程图的小部件
(3)在右侧的属性编辑器中点击【动作】
(4)在没有流程图的事件中,右侧点击【粘贴】,只有当该事件不存在流程图时才会有粘贴按钮

节点说明
条件
流程图的一个基本方面是使用条件语句,它允许您的应用根据特定条件做出决策并执行不同的代码块。条件语句是计算结果为真或假的表达式。根据这些计算结果,将执行不同的逻辑序列。
主要条件语句是if、、if-else和else。
if语句: if 语句评估条件,如果条件为真则执行代码块。
if 语句评估条件,如果条件为真则执行代码块。
if-else陈述:
if-else 语句提供了在条件为假时执行的另一段代码块。

else if陈述:
该else if语句可用于顺序检查多个条件。

实现
在 FlutterFlow 中,您可以通过两种主要方式实现条件逻辑:
设置页面变量
在 FlutterFlow 中,您可以有条件地设置页面变量。例如,您可以使用条件表达式在运行时动态设置这些变量。
动作
您还可以在 FlutterFlow 中执行条件操作,即只有满足指定条件时才会执行某些操作。这对于实现逻辑非常有用,例如根据用户输入导航到不同的页面。
并行
默认流程图的开始节点-> 终止节点是顺序执行。
并行指多个操作同时执行,彼此独立。这对于可以同时完成且不依赖于彼此结果的任务非常有用。
示例:同时从多个来源加载数据以加快数据获取过程。

循环
有时,您可能希望多次触发某些操作。例如,应用可能会从服务器获取数据,而您希望通过重试请求一定次数来处理网络错误。
循环操作要谨慎,因为如果条件永不为假,它们可能会导致您的应用进入无限循环。始终确保条件在某个时刻得到满足,这样循环才能退出。
如果预期操作在条件变为假之前完成,则必须在工作流中添加循环中断操作以退出循环。
循环终止是用于在循环的正常终止条件得到满足之前提前退出循环的语句。它们通常用于在满足某个条件时停止循环,从而防止不必要的迭代并允许程序继续执行下一部分操作。
要点:
- **目的:**当满足特定条件时立即退出循环。
- **实现:**通常通过动作流编辑器中的“添加断点”节点来实现。
- **用途:**通常用于避免无限循环或在达到所需结果后停止循环。

动作
编辑器中的菱形图标会打开一个菜单,您可以在其中编辑动作。

导航
在操作流程图中,导航主要用于页面之间的跳转与状态管理,常见的操作包括页面导航、弹窗控制、抽屉开关等
获取导航数据
在页面跳转过程中,常通过传参的形式向目标页面传递数据。在目标页面中,通过导航数据接收这些参数,数据类型为 Map 你可以使用页面中的变量接收对应键名的数据。
导航返回
从当前页面返回到上一级页面,通常用于按钮点击或操作完成后自动返回。
关闭弹窗、抽屉等
自动关闭当前界面中的弹窗或抽屉
导航到
当流程执行到该节点时,系统会根据配置自动跳转至所选页面,用于控制页面流转,实现多页面之间的自动衔接。
跳转方式
流程图或页面逻辑中配置跳转行为时,可以选择不同的跳转方式来控制页面堆栈的变化,以下是每种方式的详细解释:
| 跳转方式 | 说明 |
|---|---|
| 打开新页面(默认) | 在当前页面之上打开目标页面,当前页面仍保留在导航堆栈中。适用于查看详情、辅助设置等场景,用户可通过返回按钮返回到原页面。 |
| 跳转并关闭当前页面 | 跳转到目标页面的同时关闭当前页面,适用于登录后跳转首页等需要替换页面的场景,跳转后无法返回当前页面。 |
| 跳转并关闭所有页面 | 跳转后清空所有页面记录,仅保留目标页面。常用于流程结束后跳转首页,防止用户通过返回按钮返回之前的操作页面。 |
| 跳转并关闭目标路由之前的页面 | 跳转到目标页面后,同时关闭该页面之前的所有页面,仅保留目标页及其后续页面。适用于快速返回某一关键页面并清除无关历史记录。 目标路由,设置目标路由后,跳转到新页面时,系统会将该路由作为返回的起点。 当用户点击返回按钮时,不会回到跳转前的页面,而是直接返回你设置的目标页面。 |
动画类型
支持的动画类型如下所示

动画时长
决定了页面切换动画持续的时间,比如从当前页面跳转到新页面时的过渡效果需要多长时间完成。
举个例子,如果你想让页面切换时的缩放动画持续500毫秒,那么每次跳转到设置页面时,就会有一个持续半秒的缩放动画效果。
简单来说,动画时长就是控制页面切换时"动画播放"的速度,时间越长动画越慢,时间越短动画越快。你可以根据需要调整这个值,让页面切换看起来更流畅或者更快速。
操作流程如下
(1)在项目中创建多个页面
(2)在流程图中配置导航动作
(3)设置导航动画(可选)

(4)设置导航携带参数(可选)
- 参数的key值,由用户输入字符内容,不需要拼接
"",系统会自动拼接 - 参数的数据,支持变量和常量,变量需要用户主动去选择,如果是常量则需要手动输入值,常量支持表达式输入,需要加上
${}


硬件动作
为了降低工程师实现APP与设备通信的难度,我们增加了硬件动作功能。
通过平台的拖拽操作,让用户不必劳心费神,即可完成不同设备的通信功能。
详细说明请参考文档:集成硬件
自定义通信协议
为了降低工程师根据不同类型通信协议的实现难度,我们增加了协议管理功能。
通过在平台内配置协议并托管,在应用到即可完成数据处理。
详细说明请参考文档:自定义通信协议
定位服务
Flutter定位服务是一种跨平台的定位解决方案,支持Android和iOS平台,为开发者提供高效、精准的定位功能。该服务主要通过geolocator和geocoding两个插件实现。geolocator负责获取设备的地理位置信息,而geocoding则用于地理编码和反地理编码(将地址转换为坐标或将坐标转换为地址)
主要功能包括:
- 获取设备的当前经纬度:支持经纬度和变量绑定
- 获取设备的具体位置信息:支持地址信息和变量绑定

弹窗
APP中有时需要跳出弹窗提醒用户是否继续操作,此时就需要用到流程图中的弹窗动作。
弹窗类型
| 弹窗类型 | 说明 | 应用场景 |
|---|---|---|
| 底部弹窗 | 1.从屏幕底部向上滑出的面板 2.可以是固定高度或自适应内容高度 3.通常带有半透明遮罩层 | 1.分享菜单,如微信分享选项 2.筛选条件选择,如商品筛选 3.表单填写,如添加地址 4.快捷操作菜单,如图片编辑选项 |
| 中间弹窗 | 1.在屏幕中央显示的弹出框 2.通常带有圆角和阴影效果 3.背景有半透明遮罩层 4.通常包含标题、内容和操作按钮 | 1.确认对话框,如删除确认 2.提示信息,如操作成功或失败 3.表单输入,如登录框 |
| 日历弹窗 | 1.使用Flutter系统日历组件 2.可以选择日期,支持年份、月份切换 3.可以设置最小/最大可选日期 4.通常带有确认和取消按钮 | 1.日期选择,如选择生日 2.日期范围选择,如查询历史数据 |
| 加载提示 | 一个轻量级全局加载的提示组件 | 1.网络请求,如点击登录、提交表单时弹出 loading,请求结束自动关闭并给出成功/失败提示 2.耗时计算,如本地批量处理图片时屏蔽用户操作 |
操作流程如下
- 创建弹窗组件
- 在流程图中配置弹窗动作

API调用
让用户更快速的集成后端服务,支持API快速导入导出。
详细说明请参考文档:API管理
本地数据库
在某些环境下,例如山区、农业地区等,网络是受到限制的。
假设APP连接不了网络,又需要存储数据怎么办?基于此我们增加了本地数据库功能,直接将数据存储到手机中即可。
详细说明请参考文档:数据库
本地存储
支持键值对读写,读写都走内存 Map,毫秒级;后台异步刷盘,无需 await,数据直接写在磁盘文件(Android: /data/data/包名/files/get_storage 目录下的 .json 文件;iOS: Documents/get_storage.json),卸载 App 才消失,重装仍在。
文件大小建议 < 1MB,再大就用本地数据库。
应用场景
- 用户轻量配置:主题、语言、首次启动标记、隐私协议已读标志。
- 登录态缓存:token、refreshToken、用户 ID,App 重启即取。
- 搜索历史/草稿:输入框关键词、未发布内容临时存,随时读写。

自定义代码块
当基础动作满足不了用户的需求后,我们推出了自定义代码块功能,用户只需要在平台内新增代码块来实现预期效果。
例如,当出现数据处理过程较为复杂时,平台难以实现,此时就需要用户自己写一个函数处理数据。
注意:需要熟悉dart语言的同学才可以使用此功能
操作流程如下
- 从画布中选中按钮进入流程图后。
- 点击
+添加动作,在右侧的动作列表页面选择自定义代码块。 - 新增自定义代码块,输入函数体、代码块名称、入参、出差、依赖配置。
- 如果您在代码块中需要引用其它的包使用,点击
添加依赖即可,支持自定义依赖(需要提供依赖包的git地址)和官方依赖
- 如果您在代码块中需要引用其它的包使用,点击
- 配置完成后,在动作编辑中选中代码块即可。

void aa(){
print("hello world");
}文件
为了简化用户对文件的操作,我们提供了以下操作
- 文件选择,支持用户选择本机的文件,并输出一个file变量。
- 文件拆包,前置动作为
文件选择,通常应用于固件升级场景下,默认文件的分组大小为640字节。 - 文件分享,前置动作为
文件选择,使用户可以通过第三方应用(钉钉、邮箱等)分享本机文件给其他人。

音频
为了使用户更灵活的操作音频,我们提供了以下操作
设置音频文件,指加载用户的音频数据,通常在页面初始化时触发此动作。
- 文件来源,分为网络文件(能够通过HTTP协议访问的文件)、设备文件(手机本身的文件)、资产文件(用户生成到项目的文件,对应的文件路径为文件名)
播放,简单来说就是播放音频。
暂停,简单来说就是暂停音频。
跳转到指定位置,通过输入确定跳转到音频的哪个位置,单位为秒。
停止并释放资源,指关闭音频文件并释放已加载音频的资源,通常在页面销毁时触发此动作。
设置音量,设置当前应用内音频的音量,而不是手机的系统音量,其他App的声音不受影响。
设置音频,支持频率渐变和双耳节拍两种类型。
- 频率渐变,指音频信号的频率随时间连续变化的过程。这种效果常用于音频测试、音乐制作或冥想应用中,通过从低频到高频(或反之)的平滑过渡,创造出独特的听觉体验。例如,在冥想应用中,频率渐变可以帮助用户放松或集中注意力。

- 双耳节拍,是一种通过左右耳分别播放不同频率的声音,从而在大脑中产生感知到的节拍效果的技术。例如,左耳播放200Hz的声音,右耳播放210Hz的声音,大脑会感知到10Hz的节拍。这种技术常用于促进放松、专注或睡眠,因为不同频率的节拍与特定的脑电波状态(如α波、θ波)相关联。


开始录音,始录音时,通常需要先初始化录音器,并配置一些参数,以确保录音效果符合需求。主要参数包括录音编码格式、保存路径、采样率、比特率、声道数、内部缓冲大小和录音数据格式。
录音编码格式,录音编码格式决定了录音文件的存储方式和兼容性。常用的编码格式包括:
格式 通俗解释 适用场景 默认编码 系统自动选用的录音方式,你不用管,通常能直接用 一般录音应用,快速上手 AAC 编码, ADTS 容器 常见的有损压缩格式,音质不错,文件小 手机录音、语音备忘、网络传输 OPUS 编码, OGG 容器 专门为语音优化的压缩格式,低比特率也清楚 在线语音聊天、语音通话 Apple OPUS, .caf 文件 Apple 系统上使用的 OPUS 格式,.caf 是文件类型 iPhone/iPad 上的高质量语音录音 MP3 编码 大家最熟悉的音乐格式,文件比 WAV 小 音乐、语音录音、分享给别人 VORBIS 编码, OGG 容器 开源压缩格式,音质接近 MP3 音乐、语音录音,特别是网络传输 16 位 PCM, 无封装 录下的声音完全原样保存,没有压缩 专业音频分析、后期处理 16 位 PCM, WAV 文件 原样录音,但存成 WAV 文件,更容易播放 音乐录制、语音存档 16 位 PCM, AIFF 文件 类似 WAV,但主要在 Mac 上使用 Mac 平台录音、音乐制作 16 位 PCM, CAF 文件 Apple 系统用的无压缩格式 iOS/macOS 高保真录音 FLAC 编码 无损压缩,不丢音质,比 WAV 小 高保真音乐存储、音频收藏 AAC 编码, MPEG4 容器 和上面 AAC 类似,但用 MP4 文件存 音乐、视频配音录音 AMR-NB 编码 专门为电话语音压缩的格式,文件很小 电话录音、语音留言 AMR-WB 编码 AMR-NB 的升级版,声音更清楚 高质量电话录音、语音会议 8 位 PCM 精度低,声音可能有点粗糙 低质量语音或小文件需求 32 位浮点 PCM 精度很高,声音非常真实 音频处理、分析或专业录音 PCM, WebM 容器 PCM 编码用 WebM 存储 浏览器中播放或录音 OPUS, WebM 容器 OPUS 编码用 WebM 存储 网络语音、浏览器实时通话 VORBIS, WebM 容器 VORBIS 编码用 WebM 存储 浏览器音乐播放或语音 Float32 PCM, WAV 文件 32 位高精度 PCM 封装成 WAV 专业录音、音频后期制作 录音文件保存路径,录音文件的存储位置,可以是应用的临时目录或指定路径。
- 注意:如果不填保存路径,录音将只存在内存中,不会写入文件,通常用于实时音频处理或分析。
- 示例路径:
/storage/emulated/0/recordings/audio.aac(Android)或/Documents/audio.aac(iOS/macOS)
采样率(Hz),采样率指每秒钟采集音频样本的次数,单位为赫兹(Hz)。
比特率,比特率指每秒钟音频数据占用的比特数
- 比特率高意味着每秒钟可以记录更多的音频信息,声音细节保留得更完整。
- 比特率低时,为了压缩,音频会丢失部分信息(特别是高频细节),所以听起来会“扁平”或“沙哑”。
内部缓冲大小,缓冲区用于临时存放录音数据,避免因为处理延迟造成丢帧。
- 缓冲大小过小可能导致卡顿,过大可能增加延迟。
声道数,声道决定录音的空间感
- 单声道:1 个声道,文件小,适合语音处理。
- 立体声:2 个声道,支持左右声道分离,适合音乐或环境声录制。
录音数据格式,录音回调中数据的类型
数据格式 通俗解释 特点 适用场景 Float32 浮点流 声音用小数表示,范围 -1 到 1 精度高、便于音频处理和计算 音频分析、实时处理、科学计算或后期处理 Int16 整数流 声音用整数表示,范围 -32768 到 32767 精度比 Float32 低,但占用空间小 一般音频录制、保存为 PCM/WAV 文件 原始字节流 声音直接存成连续的二进制数据,没有具体格式 占用空间小,处理前需要解析 网络传输、底层音频处理、存储临时数据
停止录音,结束当前的音频录制,把录音文件写入磁盘(如果有设置保存路径)。
录音监听,在录音的过程中,实时获取音频数据流,方便分析或可视化。
- 录音数据格式,音频数据可以以不同格式传出,常见格式见上方录音数据格式表格
WebSocket操作类型
WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
特点
- 全双工通信:客户端和服务器可以同时发送数据
- 持久连接:一旦建立连接,就会保持开放状态,直到被关闭
- 低开销:相比HTTP轮询,减少了数据传输量
- 实时性:数据可以即时传输,无需等待客户端请求
应用场景
- 实时聊天应用,示例:微信、QQ、Slack
- 实时协作工具,示例:Google Docs、腾讯文档
- 在线游戏,示例:王者荣耀、和平精英
- 实时数据监控,股票交易系统、服务器监控面板
- 社交媒体更新,示例:微博、Twitter
操作类型
| 操作类型 | 说明 |
|---|---|
| 连接 | 客户端主动连接,建立通道后表明双方都在线,需要设置服务端的地址 |
| 关闭 | 客户端主动关闭连接 |
| 发送数据 | 客户端主动发送数据,需要设置发送的数据内容,仅支持字符串格式 |
| 接收数据 | 客户端监听对方的数据,一旦有数据过来就进行处理,接收的数据内容为字符串格式 |

时间更新
让用户更便捷的操作时间,支持时间变量绑定。
时间类型如下所示
| 时间类型 | 说明 | 应用场景 |
|---|---|---|
| 现在 | 获取当前的时间 | 常用于记录数据创建或修改的时间戳 |
| 过去 | 拿当前的时间减去时间差就是过去的时间,时间差 支持 天、时、分、秒单位 | 常用于历史趋势分析 |
| 未来 | 拿当前的时间加上时间差就是未来的时间,时间差 支持 天、时、分、秒单位 | 常用于天气预报、定时备份 |

变量更新
让用户更便捷的操作变量,支持基本类型、Map类型、数组类型的更新
不同类型的变量修改方式也不相同,如下所示
| 数据类型 | 说明 |
|---|---|
| 基本类型 | Int、String、Double、Bool,直接修改对应的值即可![]() |
| Map类型 | Map,需要设置键值对![]() |
| 数组类型 | List,有四种操作类型 1.添加新元素,支持尾部、顶部、指定位置插入 ![]() 2.删除元素,设置删除元素的索引 ![]() 3.修改元素,设置修改元素的索引以及修改值 ![]() 4.清空数组 |

文本识别
把图片中的字瞬间变成可复制、可搜索的 Flutter 字符串。
应用场景
- 快递单号秒填。
- 拍身份证/银行卡,自动把姓名、卡号写进表单,省去手打。
- 学生拍黑板一键转文字笔记。
操作流程如下
- 设置图片地址,仅支持网络地址,通过图片识别文字
- 识别结果是否换行(可选),如果为true,平台就不会过滤换行符
- 设置接收变量,选择一个字符串变量接收识别到的结果
- 设置支持的语音类型,支持多选

语言设置
语言设置是指在应用内设置要显示的语言,前提条件是应用需要满足多语言,即在设计应用时使其能够适应不同语言和地区的需求。
多语言请参考文档:多语言
应用场景
- 日期和时间格式,根据用户的语言习惯来格式化日期和时间显示。
- 动态文本,有些文本内容可能依赖于特定的语言环境,根据用户的语言选择来动态展示文本。
- 数字和货币格式,不同地区对数字和货币的显示方式有所不同。
操作类型
| 操作类型 | 说明 |
|---|---|
| 读取语言类型 | 获取应用当前设置的语言类型,支持变量绑定 |
| 设置语言类型 | 设置应用当前显示的语音类型 |

主题设置
主题设置就像给App换装一样,让用户可以自定义App的外观和感觉。仅支持明暗模式两种主题(白天模式/夜间模式)。
主题设置请参考文档:主题设置
应用场景
- 统一应用风格,为整个应用设置一致的颜色方案和字体风格,确保UI的统一性
- 响应式设计,根据不同场景(如深色/浅色模式)调整主题
- 文本样式管理,通过textTheme统一管理标题、正文等不同级别文本的样式。
操作类型
| 操作类型 | 说明 |
|---|---|
| 读取主题类型 | 获取应用当前设置的主题类型,支持变量绑定 |
| 设置主题类型 | 设置应用当前显示的主题类型,存在浅色和深色两种 |

加密
把加密想成"带锁的抽屉"
- 你有一段明文(比如用户密码、身份证号),怕别人偷看。
- 用一把 16/24/32 字节的“钥匙”(key) 把它塞进加密函数,瞬间变成一堆乱码(密文)。
- 乱码可以随便存、随便传,别人拿到也看不懂;需要时再拿同一把钥匙解密,原样蹦出来。
应用场景
- 本地存敏感 token:存前先加密,手机丢了也不怕。
- 接口额外加壳:对支付参数再套一层 AES,抓包也看不懂。
- 端对端聊天:AES 钥匙通过 RSA 交换,聊天内容只有双方能解开。
操作类型
| 操作类型 | 说明 |
|---|---|
| 加密 | 对目标数据进行加密,需要设置以下内容 1.密钥,加密使用的密钥 2.填充方式,默认为 PKCS7,支持的填充方式如下 ![]() 3.设置目标数据,数据为字节数组类型 4.绑定变量,将加密后的结果赋值给变量 |
| 解密 | 对目标数据进行解密,需要设置以下内容 1.密钥,解密使用的密钥 2.填充方式,默认为 PKCS7,支持的填充方式如下 ![]() 3.设置目标数据,数据为字节数组类型 4.绑定变量,将解密后的结果赋值给变量 |

身份验证
指纹验证是一种基于生物特征的身份认证技术,通过扫描和比对人体指纹的独特纹路来确认个人身份。
特点
- 唯一性:每个人的指纹纹路都是独一无二的
- 便捷性:无需记忆密码,只需轻轻一触
- 安全性高:指纹特征难以伪造
- 响应快速:识别过程通常在1秒内完成
应用场景
- 手机解锁,最常见的应用,替代传统密码或图案解锁
- 移动支付,支付宝、微信支付等应用
- 应用锁,保护特定应用的隐私
操作类型
| 操作类型 | 说明 |
|---|---|
| 是否存在指纹 | 判断设备否支持指纹验证,支持变量绑定 |
| 进行指纹验证 | 与设备上已注册的生物识别数据(如指纹)进行比对,并输出结果,支持变量绑定 |






