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/8/1 14:20:17 阅读更多 →
HarmonyOS掌上记账APP开发实践第49篇:App Linking Kit 应用链接:延迟拉起与深度链接场景

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

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

2026/7/31 0:31:25 阅读更多 →
C2000 eHRPWM寄存器配置实战:从时基到死区,驱动电机与电源设计

C2000 eHRPWM寄存器配置实战:从时基到死区,驱动电机与电源设计

1. 从寄存器手册到实战配置:eHRPWM的核心逻辑 如果你曾经在电机控制或者电源设计的项目中,面对德州仪器(TI)C2000系列微控制器那本厚厚的技术参考手册,对着eHRPWM(增强型高分辨率脉宽调制器)的寄…

2026/7/31 18:41:09 阅读更多 →

最新新闻

Inochi Creator终极指南:让2D角色动起来的开源动画编辑器

Inochi Creator终极指南:让2D角色动起来的开源动画编辑器

Inochi Creator终极指南:让2D角色动起来的开源动画编辑器 【免费下载链接】inochi-creator Inochi2D Rigging Application 项目地址: https://gitcode.com/gh_mirrors/in/inochi-creator 你是否曾经看着自己精心绘制的2D角色,希望它们能够真正&qu…

2026/8/2 17:49:24 阅读更多 →
如何通过轻量级开源工具GHelper实现华硕笔记本硬件控制的极致优化?

如何通过轻量级开源工具GHelper实现华硕笔记本硬件控制的极致优化?

如何通过轻量级开源工具GHelper实现华硕笔记本硬件控制的极致优化? 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook,…

2026/8/2 17:49:24 阅读更多 →
打破音乐平台壁垒:163MusicLyrics如何成为你的私人歌词管家

打破音乐平台壁垒:163MusicLyrics如何成为你的私人歌词管家

打破音乐平台壁垒:163MusicLyrics如何成为你的私人歌词管家 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 你是否曾经为了给心爱的歌曲配上完美的歌词而四处…

2026/8/2 17:49:24 阅读更多 →
AI折叠时代:从普惠技术到精英游戏,普通开发者如何破局?

AI折叠时代:从普惠技术到精英游戏,普通开发者如何破局?

1. 从“全民狂欢”到“精英游戏”:AI折叠时代的来临最近,关于Fable 5和GPT-5.6的讨论在圈子里热度不减,但讨论的焦点已经从“它能做什么”悄然转向了“谁能用得起它”。这种感觉很熟悉,就像几年前我们谈论顶级显卡、高性能计算集群…

2026/8/2 17:49:24 阅读更多 →
一滴液体如何被精准控制?

一滴液体如何被精准控制?

《一滴液体如何被精准控制?》——压电阀正在进入高端制造现场当制造精度进入微米时代,控制液体也成为一项精密技术在很多人的认知中:阀门的作用很简单。打开。关闭。控制流量。但是在高端制造领域,阀门正在面临一个新的挑战&#…

2026/8/2 17:49:24 阅读更多 →
模型能聊天了,然后呢?Dify 把你的本地模型焊进真实业务,真正干活

模型能聊天了,然后呢?Dify 把你的本地模型焊进真实业务,真正干活

模型能聊天了,然后呢?Dify 把你的本地模型焊进真实业务,真正干活本文基于 Dify v1.x(2026年7月最新版)编写。所有配置和 API 调用均经过验证,可直接复制运行。 Dify 需要 Docker Desktop 已安装并运行。它是…

2026/8/2 17:48:24 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →