HarmonyOS掌上记账APP开发实践第51篇:AGC 生态集成:Toast、Dialog、日志服务的统一治理
051 —简介鸿蒙生态中AGCAppGallery Connect提供了一套完整的工具包帮助开发者高效构建应用。MoneyTrack 深度集成了多个 AGC 工具包——hw-agconnect系列的 ToastDialog 和 UIDialog 用于统一 UI 提示util-log 用于日志治理。这些工具在 SettingPage 中得到了充分展示用户操作需要确认时弹出 UIDialog 确认弹框操作成功后以 ToastDialog 轻提示反馈同时通过 util-log 记录用户行为日志用于后续分析。核心知识点1. hw-agconnect 系列包AGC 工具包通过hw-agconnectnamespace 统一导出主要包含工具包功能核心 APIhw-agconnect/uiUI 组件Toast、DialogToastDialog, UIDialoghw-agconnect/util-log日志服务Loggerhw-agconnect/cloud云服务CloudDB, CloudFunctionhw-agconnect/auth认证服务Auth2. AGC 工具包组件关系渲染错误:Mermaid 渲染失败: Parse error on line 6: ...框] Log[日志工具包hw-agc ---------------------^ Expecting SEMI, NEWLINE, SPACE, EOF, subgraph, end, acc_title, acc_descr, acc_descr_multiline_value, AMP, COLON, STYLE, LINKSTYLE, CLASSDEF, CLASS, CLICK, DOWN, DEFAULT, NUM, COMMA, NODE_STRING, BRKT, MINUS, MULT, UNICODE_TEXT, direction_tb, direction_bt, direction_rl, direction_lr, direction_td, got LINK_ID3. ToastDialog 更多用法ToastDialog 支持多种自定义配置满足不同场景的提示需求特性说明示例位置控制设置显示位置顶部、居中、底部{ align: Alignment.Top }带图标在文本前显示图标{ icon: $r(app.media.success) }自定义样式设置背景色、圆角、文本颜色{ backgroundColor: #4CAF50 }多行文本支持长文本自动换行{ text: 长文本... }// 带图标的成功提示ToastDialog.show({text:操作成功,icon:$r(app.media.ic_success),duration:2000,alignment:Alignment.Center});// 底部警告提示自定义颜色ToastDialog.show({text:网络连接不稳定,duration:3000,backgroundColor:#FF9800,textColor:#FFFFFF});4. UIDialog 更多类型UIDialog 支持多种弹框类型适用于不同的交互场景弹框类型适用场景核心配置确认弹框需要用户确认的操作退出、删除title, message, confirmButton, cancelButton提示弹框无需交互仅展示信息title, message, confirmButton单选列表从多个选项中选择一个title, items, selectedIndex多选列表从多个选项中选择多个title, items, selectedIndices确认弹框UIDialog.show({title:退出登录,message:确定要退出当前账号吗,confirmButton:{value:确定,onClick:()performLogout()},cancelButton:{value:取消}});单选列表UIDialog.show({title:选择报表导出格式,items:[PDF,Excel,CSV],selectedIndex:0,onItemClick:(index){exportReport(formats[index]);}});多选列表UIDialog.show({title:选择要同步的数据,items:[账单记录,资产信息,预算设置,分类标签],selectedIndices:[0,1],onItemClick:(indices){syncSelectedData(indices);}});5. util-log 日志分级util-log的 Logger 提供了完整的日志分级系统日志级别方法说明使用场景DEBUGLogger.debug(tag, msg)调试信息开发阶段调试发布后通常关闭INFOLogger.info(tag, msg)常规信息用户行为的常规记录WARNLogger.warn(tag, msg)警告信息非预期但可恢复的情况ERRORLogger.error(tag, msg)错误信息需要排查的异常和错误import{Logger}fromhw-agconnect/util-log;// 不同级别的日志记录Logger.debug(Feedback,用户打开反馈页面);Logger.info(Feedback,用户提交反馈附件数3);Logger.warn(Feedback,上传超时正在重试第2次);Logger.error(Feedback,上传失败服务器返回 500);6. 日志治理策略在生产环境中日志治理至关重要。以下是 MoneyTrack 采用的策略策略说明实现方式级别控制发布包关闭 DEBUG 日志根据构建配置切换日志级别隐私过滤自动过滤用户敏感信息自定义日志包装器替换手机号、身份证等日志上传用户授权后上传日志用于问题排查设置页提供上传日志按钮日志轮转本地日志文件大小控制设置最大文件大小超限自动清理// 隐私过滤的日志包装器functionsafeLog(level:string,tag:string,message:string){// 替换手机号138****1234constfilteredmessage.replace(/(1[3-9]\d)\d{4}(\d{4})/g,$1****$2);Logger[level](tag,filtered);}项目代码案例文件路径feature_settings/SettingPage.etsimport{ToastDialog,UIDialog}fromhw-agconnect/ui;import{Logger}fromhw-agconnect/util-log;// 退出登录确认弹框functionshowLogoutDialog(){UIDialog.show({title:退出登录,message:确定要退出当前账号吗,confirmButton:{value:确定,onClick:(){performLogout();ToastDialog.show({text:已退出登录,icon:$r(app.media.ic_info),duration:2000});Logger.info(SettingPage,用户退出登录);}},cancelButton:{value:取消}});}// 清除缓存成功提示functionclearCache(){// 清除缓存逻辑...ToastDialog.show({text:缓存已清除,duration:1500,alignment:Alignment.Center});Logger.info(SettingPage,缓存清除完成);}// 导出数据单选列表functionshowExportDialog(){UIDialog.show({title:导出格式,items:[PDF 报表,Excel 数据,CSV 备份],selectedIndex:0,onItemClick:(index){exportData([pdf,excel,csv][index]);Logger.info(SettingPage,用户导出数据格式${[PDF,Excel,CSV][index]});}});}AGC 工具包的统一治理让 UI 提示和日志管理不再分散各处提升了代码的规范性和可维护性。最佳实践统一弹框风格全应用统一使用 UIDialog避免同时混用系统AlertDialog和 UIDialog 导致视觉不一致。Toast 时长控制简单提示 1.5s 足矣重要操作反馈 2~3s过长的 Toast 会干扰用户操作。日志分级规范INFO 记录关键业务节点页面进入、操作完成WARN 记录可恢复异常网络超时重试ERROR 记录不可恢复异常崩溃前上下文。DEBUG 日志仅在开发环境开启。隐私合规所有日志在记录前必须经过脱敏处理手机号、身份证号等敏感信息不可明文输出。用户可控的日志上传提供日志上传功能但必须在用户明确授权后才能执行且在上传前告知用户日志包含的信息范围。组件复用将常用的 UIDialog 封装为工厂方法如showConfirm、showPicker减少重复代码保持交互一致性。推荐参考文档AGC 生态工具包指南hw-agconnect/ui API 参考hw-agconnect/util-log API 参考

相关新闻

HarmonyOS掌上记账APP开发实践第50篇:Core File Kit 与文件选择器:沙箱文件管理与批量授权

HarmonyOS掌上记账APP开发实践第50篇:Core File Kit 与文件选择器:沙箱文件管理与批量授权

050 — Core File Kit 与文件选择器:沙箱文件管理与批量授权 简介 鸿蒙系统采用沙箱文件机制来保障用户数据安全——每个应用只能访问自己的沙箱目录,访问外部文件需要通过文件选择器(Picker)获取用户授权。MoneyTrack 在反馈模块…

2026/7/21 8:49:16阅读更多 →
HarmonyOS掌上记账APP开发实践第49篇:App Linking Kit 应用链接:延迟拉起与深度链接场景

HarmonyOS掌上记账APP开发实践第49篇:App Linking Kit 应用链接:延迟拉起与深度链接场景

049 — App Linking Kit 应用链接:延迟拉起与深度链接场景 简介 在用户拉新和回流场景中,如何让用户从外部链接直接跳转到应用内的特定页面是关键体验。App Linking Kit 提供了强大的深度链接能力,支持"延迟拉起"——即使用户尚未…

2026/7/21 8:49:16阅读更多 →
深入解析TMS320F2803x DSP时钟系统:从PLL配置到故障处理

深入解析TMS320F2803x DSP时钟系统:从PLL配置到故障处理

1. 项目概述与核心价值 对于任何一位从事TMS320F2803x系列DSP开发的工程师来说,时钟系统的配置绝对是项目启动时绕不开的第一个“硬骨头”。你可能有过这样的经历:代码下载进去,外设就是不工作,或者PWM输出频率飘忽不定&#xff0…

2026/7/21 8:47:15阅读更多 →
PHP 8.5容器化实战:从基础镜像到生产部署

PHP 8.5容器化实战:从基础镜像到生产部署

1. PHP 8.5容器化实战指南作为现代Web开发的核心语言之一,PHP在容器化浪潮中展现出强大的适应能力。将PHP 8.5应用容器化不仅能实现环境标准化,还能显著提升部署效率和资源利用率。本指南将从实际生产经验出发,详解PHP容器化的完整技术路径。…

2026/7/21 22:30:42阅读更多 →
嵌入式系统PLL控制器配置:从寄存器解析到实战调试

嵌入式系统PLL控制器配置:从寄存器解析到实战调试

1. 锁相环(PLL)控制器:嵌入式系统的“心脏起搏器”在任何一个复杂的嵌入式系统里,时钟信号就像是整个系统的脉搏,它决定了处理器、总线和外设协同工作的节奏。而锁相环(PLL)控制器,就…

2026/7/21 22:30:42阅读更多 →
Android功耗系列专题理论之三:cpu 功耗问题分析方法

Android功耗系列专题理论之三:cpu 功耗问题分析方法

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: Android功耗系列专题理论之三:cpu 功耗问题分析方法 目录 一、背景 1.1:CPU 电源管理简介 1.2:cpufreq框架 1.3:schedutil框架 1.4:cpu idle

2026/7/21 22:30:42阅读更多 →
深入解析McBSP仿真模式与复位机制:嵌入式DSP通信调试与配置实战

深入解析McBSP仿真模式与复位机制:嵌入式DSP通信调试与配置实战

1. McBSP仿真模式、复位机制与寄存器详解在嵌入式DSP开发中,尤其是使用TI的TMS320系列芯片时,多通道缓冲串行端口(McBSP)是一个功能强大且复杂的模块。它不仅是连接音频编解码器、ADC/DAC、数字传感器等外部器件的桥梁&#xff0c…

2026/7/21 22:30:42阅读更多 →
2026河南高考一分一段表解析与志愿填报指南

2026河南高考一分一段表解析与志愿填报指南

1. 高考分数段统计表的本质与价值每年高考结束后,各省教育考试院都会发布"一分一段表",这本质上是一份考生成绩分布统计报告。以河南这样的高考大省为例,2026年的一分一段表将清晰呈现全省考生在各分数区间的具体人数分布情况。这份…

2026/7/21 22:30:42阅读更多 →
QSS终极指南:9款专业QT样式表模板快速美化你的应用界面

QSS终极指南:9款专业QT样式表模板快速美化你的应用界面

QSS终极指南:9款专业QT样式表模板快速美化你的应用界面 【免费下载链接】QSS QT Style Sheets templates 项目地址: https://gitcode.com/gh_mirrors/qs/QSS 想要让你的Qt应用拥有专业级的视觉效果吗?QSS项目为你提供了完整的解决方案。这个开源样…

2026/7/21 22:28:42阅读更多 →
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/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

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

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

2026/7/21 18:53:30阅读更多 →