【OpenHarmony/HarmonyOs 】ArkUI 对话界面实战:消息状态、气泡布局与 AI 云函数接入设计
【OpenHarmony/HarmonyOs 】ArkUI 对话界面实战消息状态、气泡布局与 AI 云函数接入设计前言AI 助手页面看似只是消息列表和输入框实际包含消息模型、角色布局、不可变状态更新、快捷提示、加载态、失败重试与密钥安全。LinkOS 链界已经实现了完整的对话 UI 骨架当前回复由本地定时器模拟正适合作为真实 AI 接入前的界面原型。一、先定义消息模型typeChatRole user|assistant;interfaceChatMessage { id:string; role: ChatRole; content:string; time:string; }role决定气泡方向与颜色id为 ForEach 提供稳定标识time用于界面展示。真实产品建议继续增加typeMessageStatus sending|success|failed; interface ChatMessage { id:string; role: ChatRole; content:string;time:string;status: MessageStatus; requestId?:string; }状态字段可支持发送动画、失败图标和点击重试requestId可关联服务端日志。二、不可变更新触发 ArkUI 刷新privateaddUserMessage(text: string) {constvalue text.trim();if(!value)return;this.messages [ ...this.messages, { id: m${this.nextIdSeq}, role:user, content: value, time:this.getNowTime() } ]; }重新赋值数组比原地push()更容易保证State变化被框架观察。对于小型会话这种写法直观可靠长会话需要分页、虚拟列表和本地数据库避免数组无限增长。三、发送动作的正确顺序privateonSend() {consttext this.inputText;if(!text.trim())return;this.inputText ;this.addUserMessage(text); setTimeout(() {this.addAssistantMessage(我已收到你的问题……); },200); }当前实现用于演示交互清空输入、添加用户消息、延时生成模拟回复。接入真实接口后推荐流程是添加状态为 sending 的用户消息添加一条“正在生成”的助手占位消息调用云函数流式更新助手内容成功后标记完成失败则保留重试入口。四、按角色构建不同气泡ForEach(this.messages, (message: ChatMessage) {if(message.roleassistant) {Row(){Text()Column(){Text(message.content).lineHeight(22)Text(message.time).fontSize(11)} .backgroundColor(Color.White)} }else{Row(){Text(message.content).lineHeight(22)} .margin({ left:56, right:16}) .backgroundColor(rgba(97, 95, 255, 0.10)) } })助手消息带头像并靠左用户消息缩进显示。除了视觉差异还应加入语义与无障碍描述让读屏软件能说出“用户消息”或“助手回复”。五、快捷提示降低空白页压力首次进入对话页时用户经常不知道该问什么。项目提供四个快捷提示例如“推荐一些开发工具”“如何提高工作效率”。点击后复用统一发送逻辑privatesendQuickPrompt(text: string){this.inputText text;this.onSend(); }快捷提示应结合当前身份动态变化开发者看到代码相关提示学生看到学习计划设计师看到灵感与作品集建议。这能把身份系统和 AI 页面连接起来。六、为什么必须通过云函数调用模型客户端不能直接保存 DeepSeek 或其他供应商的 API Key。HAP 在用户设备上运行静态密钥无法真正保密。推荐架构ArkUI 对话页 ↓ HTTPS请求携带用户 Token AGC CloudFunction├─校验用户身份 ├─ 限流与内容长度检查 ├─ 从服务端环境变量读取 AI Key └─ 请求模型并返回结果云函数还应设置超时、最大 Token、敏感内容策略和成本配额。客户端只拿业务结果不接触第三方密钥。七、真实接口的状态设计建议页面至少维护StateinputText: string ;Statemessages: ChatMessage[] [];StateisGenerating: boolean false;StateerrorText: string ;发送期间禁用重复提交但应提供“停止生成”。超时后不要清掉用户问题应将消息标为失败并允许重试。网络恢复后是否自动重发要谨慎避免产生重复计费。八、流式输出与性能流式回复能让用户更快看到首字但不要每收到一个字符就刷新整个消息列表。可以累计一小段文本或按固定时间间隔更新最后一条消息。长回答还应使用可滚动列表并在用户主动向上阅读时停止自动滚到底部。其他值得补齐的能力包括Markdown 渲染与代码块复制会话历史与新建会话消息长按复制、重新生成联网搜索来源引用对输入长度和附件大小进行限制页面退出时取消尚未完成的请求。九、总结AI 页面应先把消息状态机和交互边界做好再连接模型接口。LinkOS 当前的 ArkUI 原型已经验证了气泡布局、快捷提示和状态数组下一步应通过 AGC 云函数安全接入服务补充生成态、失败重试、流式节流与历史持久化。这样才能从“看起来像聊天”成长为可用的 AI 助手。✨

相关新闻

旧物改造方案 —— 鸿蒙AI智能助手开发全流程解析

旧物改造方案 —— 鸿蒙AI智能助手开发全流程解析

🔧 旧物改造方案 —— 鸿蒙AI智能助手开发全流程解析分类: 生活整理 | 应用编号: App2 | 平台: HarmonyOS NEXT 关键词: 鸿蒙、鸿蒙PC、鸿蒙Flutter框架、AI应用、ArkTS、HarmonyOS NEXT 摘要: 本文基于旧物…

2026/7/21 7:45:04阅读更多 →
深入解析C2000 ePWM死区生成、斩波与故障保护三大核心模块

深入解析C2000 ePWM死区生成、斩波与故障保护三大核心模块

1. 项目概述与核心价值在电力电子和电机驱动的世界里,PWM(脉冲宽度调制)信号就像是系统的“心跳”,它精准地控制着功率开关器件的开与关,从而决定了能量如何从电源流向负载。然而,一个健壮、可靠的PWM系统远…

2026/7/21 7:45:04阅读更多 →
红手指云手机API自动化与群控实战:从技术原理到游戏挂机脚本开发

红手指云手机API自动化与群控实战:从技术原理到游戏挂机脚本开发

在游戏挂机、应用多开、批量养号等场景中,云手机已经成为很多开发者和工作室的标配工具。红手指作为国内最早进入云手机领域的产品之一,已经稳定运行超过七年,其技术架构和功能设计在长期实践中积累了独特的工程经验。对于需要24小时在线、批…

2026/7/21 7:45:04阅读更多 →
Tack架构揭秘:如何实现AWS VPC中的CoreOS与Kubernetes完美集成

Tack架构揭秘:如何实现AWS VPC中的CoreOS与Kubernetes完美集成

Tack架构揭秘:如何实现AWS VPC中的CoreOS与Kubernetes完美集成 【免费下载链接】tack Terraform module for creating Kubernetes cluster running on Container Linux by CoreOS in an AWS VPC 项目地址: https://gitcode.com/gh_mirrors/ta/tack 在当今云原…

2026/7/21 16:51:55阅读更多 →
DeepONet论文复现:Nature Machine Intelligence经典模型实现

DeepONet论文复现:Nature Machine Intelligence经典模型实现

DeepONet论文复现:Nature Machine Intelligence经典模型实现 【免费下载链接】deeponet Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators 项目地址: https://gitcode.com/gh_mirrors/de/deeponet Dee…

2026/7/21 16:51:55阅读更多 →
Excel卡了,然后呢?大数据量驱动下的数据分析工具升级

Excel卡了,然后呢?大数据量驱动下的数据分析工具升级

"每次有人问我投放分析用什么工具,我都会反问:你的月投放预算是多少、投了几个渠道。答案不同,推荐的工具完全不同。一个月投2万和一个月投200万,用的工具肯定不是同一套。" 说实话,投放分析工具没有绝对的…

2026/7/21 16:51:55阅读更多 →
5分钟快速入门DeepXDE:科学机器学习与物理信息学习的终极指南

5分钟快速入门DeepXDE:科学机器学习与物理信息学习的终极指南

5分钟快速入门DeepXDE:科学机器学习与物理信息学习的终极指南 【免费下载链接】deepxde A library for scientific machine learning and physics-informed learning 项目地址: https://gitcode.com/gh_mirrors/de/deepxde 你是否曾为求解复杂的偏微分方程而…

2026/7/21 16:51:55阅读更多 →
服装AI质检特殊场景下的疵点标注?

服装AI质检特殊场景下的疵点标注?

在工业质检、纺织服装、材料科学等领域,基于视觉的疵点检测与标注是训练高质量AI模型的关键步骤。然而,实际生产环境中遇到的疵点千变万化,远非理想实验室条件下的标准图像可比。面对褶皱上的疵点、复杂纹理背景、低对比度目标、跨区域大面积…

2026/7/21 16:51:55阅读更多 →
告别动漫下载卡顿:3步配置专业Tracker加速方案

告别动漫下载卡顿:3步配置专业Tracker加速方案

告别动漫下载卡顿:3步配置专业Tracker加速方案 【免费下载链接】animeTrackerList 动漫磁性链接加速方案(animeTrackerList) 项目地址: https://gitcode.com/GitHub_Trending/an/animeTrackerList 还在为心爱的动漫资源下载速度慢而烦…

2026/7/21 16:49:55阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 0:51:49阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 0:51:49阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 0:51:49阅读更多 →
Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

📌教程适配:OpenClaw v2.7.9 | 兼容 Windows10/11、macOS 双系统 📖前言 当下各类本地 AI 工具层出不穷,多数产品仅能完成文字问答交互,很难直接操控电脑执行实际操作。OpenClaw,业内常称小龙虾 AI&#…

2026/7/21 0:01:46阅读更多 →
Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

聊《一次Codex项目复盘,问题最后出在流程而不是模型》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/21 0:01:46阅读更多 →
手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

大家好,还是我。前几期带大家做了心情日记本和可视化大屏,后台有朋友留言:“能不能教点好玩的?我想做游戏,但一行代码都不会。”行,这期就安排。今天的目标:从零做一个五子棋游戏。 带AI对战、三…

2026/7/21 0:03:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/20 22:51:39阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/20 18:51:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/20 18:51:18阅读更多 →