
送礼推荐鸿蒙AI应用开发实战——AI送礼顾问心意送到位一、引言送礼是一门艺术也是一门学问。选对礼物能让人感受到你的用心和诚意选错礼物不仅浪费金钱还可能造成尴尬。然而面对琳琅满目的商品和不同的送礼对象、关系程度、预算限制很多人常常陷入选择困难。送礼推荐正是为了解决这一痛点而诞生的鸿蒙AI应用。用户只需选择送礼对象长辈/伴侣/朋友/同事/孩子、输入预算范围和选择关系程度亲密/一般/商务AI即可自动生成3个合适的礼物推荐每个礼物都附带推荐理由和价格带让送礼变得轻松而有心意。本文将从应用架构设计、鸿蒙核心技术实现、AI应用亮点等维度深度剖析这款应用的开发全流程。二、应用架构设计Model-Service-Page 三层架构2.1 架构概览┌─────────────────────────────────────────────────────────┐ │ Page 层 (UI) │ │ GiftAdvisorPage.ets │ │ State 预算输入 / Builder 礼物卡片 / Flex 标签 │ ├─────────────────────────────────────────────────────────┤ │ Service 层 (业务逻辑) │ │ GiftAdvisorService.ets │ │ 礼物库管理 / 预算筛选 / 组合匹配 │ ├─────────────────────────────────────────────────────────┤ │ Model 层 (数据模型) │ │ GiftAdvisorModel.ets │ │ GiftEntry / GiftData / GAMessage / 常量 │ └─────────────────────────────────────────────────────────┘2.2 Model 层数据结构定义核心数据类GiftEntry单个礼物条目包含名称、推荐理由和价格范围GiftData礼物列表的聚合3个礼物关键常量GA_TARGETS5种送礼对象长辈/伴侣/朋友/同事/孩子GA_RELATIONS3种关系程度亲密/一般/商务2.3 Service 层礼物推荐算法Service 层预置了45个礼物的数据库覆盖5种对象×3种关系的组合constmap:Recordstring,GiftEntry[]{长辈|亲密:[newGiftEntry(按摩椅垫,实用性强每天都能用体现孝心与关怀,500-2000元),newGiftEntry(高品质茶叶礼盒,长辈大多爱喝茶好茶有面子又有品味,300-800元),newGiftEntry(健康体检套餐,送健康最贴心全面体检让子女放心,800-3000元)],伴侣|亲密:[/* ... */],朋友|一般:[/* ... */],同事|商务:[/* ... */],// ... 15种组合 × 3个礼物 45个礼物}2.4 Page 层UI展示Page 层实现了对象选择、预算输入、关系选择等交互以及礼物推荐结果展示。三、鸿蒙技术深度解析3.1 State 预算输入验证预算输入使用 TextInput 组件并设计了验证逻辑StateselectedTarget:string// 送礼对象StateselectedBudget:string// 预算范围StateselectedRelation:string// 关系程度StatecurrentData:GiftData|nullnull// 推荐结果预算输入TextInput({text:this.selectedBudget,placeholder:请输入预算如 200-500}).fontSize(14).fontColor(COLOR_TEXT).placeholderColor(COLOR_TEXT_SEC).backgroundColor(COLOR_CARD).borderRadius(12).border({width:1,color:COLOR_BORDER}).padding(12).margin({left:16,right:16,top:4,bottom:8}).onChange((val:string){this.selectedBudgetval})设计要点占位符提示输入格式200-500降低用户输入成本预算非必填用户可以不输入直接生成推荐预算信息传递给 Service 层用于后续的智能筛选3.2 Builder 礼物卡片带价格带标签礼物推荐结果以卡片形式展示每个礼物独立成卡包含名称、理由和价格带标签BuilderbuildResultCard(data:GiftData){Column(){Text( 礼物推荐).fontSize(16).fontWeight(FontWeight.Bold)ForEach(data.gifts,(gift:GiftEntry,idx:number){Column(){Row(){Column(){Text(${idx 1})// 圆形序号}Column(){Text(gift.name).fontSize(16).fontWeight(FontWeight.Bold)Text(gift.reason).fontSize(13).fontColor(COLOR_TEXT_SEC)Text(gift.price_range).fontSize(12).fontColor(COLOR_PRIMARY).backgroundColor(COLOR_SELECTED_BG).borderRadius(8)}}}// 卡片样式})}}礼物卡片的设计特点序号使用青色圆形标识突出显示礼物名称使用大号加粗字体推荐理由使用灰色常规字体详细说明推荐原因价格带使用标签样式青色背景青色文字一目了然3.3 Flex 标签选择送礼对象和关系程度使用 Flex ForEach 标签选择this.buildSection( 送礼对象,GA_TARGETS,this.selectedTarget,(item:string){this.selectedTargetitem})this.buildSection( 关系程度,GA_RELATIONS,this.selectedRelation,(item:string){this.selectedRelationitem})3.4 Scroll 滚动展示3个礼物推荐结果使用 Scroll 包裹确保所有内容可滚动查看if(this.currentData!null){Scroll(){Column(){this.buildResultCard(this.currentData)}.padding({bottom:20})}.layoutWeight(1).scrollBar(BarState.Off)}四、AI 应用亮点分析4.1 15种组合覆盖5×3应用通过5种送礼对象 × 3种关系程度的笛卡尔积组合实现了15种不同的推荐场景5 对象 × 3 关系 15 种组合 每种组合包含 3 个礼物 总计 45 个礼物预置对象覆盖长辈、伴侣、朋友、同事、孩子关系程度亲密、一般、商务4.2 45个礼物预置库应用内置了45个精心挑选的礼物覆盖各种场景和预算长辈礼物亲密按摩椅垫500-2000元、茶叶礼盒300-800元、体检套餐800-3000元一般水果礼篮200-500元、保健品礼盒300-600元、羊绒围巾300-800元伴侣礼物亲密定制情侣饰品500-2000元、香水500-1500元、周末度假套餐1000-3000元一般鲜花巧克力200-500元、品牌手表500-1500元、蓝牙音箱300-800元朋友礼物亲密个性定制礼物200-800元、高品质耳机500-1500元、桌游/游戏200-500元一般香薰蜡烛礼盒100-300元、创意文具套装100-300元、零食大礼包100-300元同事礼物商务品牌钢笔300-1000元、办公桌摆件200-500元、茶叶/咖啡礼盒200-600元一般桌面绿植50-200元、保温杯100-300元、书签套装50-150元孩子礼物亲密乐高/积木套装200-800元、绘本套装100-300元、科学实验套装150-400元一般文具礼盒50-200元、毛绒玩具50-200元、益智拼图50-150元4.3 预算自动筛选用户输入的预算范围可以作为筛选条件系统会根据预算推荐价格合适的礼物// 预算信息传递给 Service 层constdatathis.service.getGift(this.selectedTarget,this.selectedBudget,this.selectedRelation)预算处理逻辑当用户输入预算时Service 层可以筛选出价格带在预算范围内的礼物当用户不输入预算时返回默认推荐每个礼物都标注了明确的价格带方便用户参考4.4 推荐理由多样化每个礼物都附带了详细的推荐理由帮助用户理解为什么这个礼物适合实用性强每天都能用体现孝心与关怀——强调实用性独一无二刻上名字或纪念日浪漫满分——强调个性化商务场合经典礼品体现专业和尊重——强调场合适配性开发智力又有趣孩子可以玩很久——强调教育和娱乐性五、关键技术挑战与解决方案5.1 挑战一礼物库的合理组织挑战45个礼物需要按照对象和关系两级维度组织确保快速检索。解决方案采用Recordstring, GiftEntry[]映射表结构键为对象|关系组合如长辈|亲密直接通过键值匹配返回对应的3个礼物内置兜底方案当没有匹配时返回通用礼物5.2 挑战二预算信息的处理挑战预算输入格式不统一需要灵活处理。解决方案当前版本将预算信息作为字符串传递给 Service 层预留了预算解析和筛选的逻辑扩展接口无论用户是否输入预算都能正常生成推荐5.3 挑战三礼物信息的丰富展示挑战每个礼物包含名称、理由、价格带三个维度的信息。解决方案名称使用大号加粗字体视觉突出理由使用常规字体提供详细说明价格带使用标签样式轻量呈现每个礼物独立成卡层次分明六、用户交互体验设计6.1 青色的温情主题应用采用青色系配色#F0FDFA背景、#14B8A6主题色传达温暖、贴心的品牌调性constCOLOR_BG#F0FDFAconstCOLOR_PRIMARY#14B8A6constCOLOR_SELECTED_BG#CCFBF16.2 清晰的三步配置选择送礼对象5种对象类型输入预算范围可选格式如200-500选择关系程度亲密/一般/商务6.3 结果展示的丰富性每个礼物结果包含三层信息礼物名称大号加粗推荐理由详细说明价格带标签样式七、总结送礼推荐应用展示了鸿蒙 ArkTS 在生活服务领域的应用潜力三个核心技术亮点值得关注45个礼物预置库通过两级映射表结构高效组织和管理礼物数据Builder 礼物卡片组件统一的结果卡片组件含名称、理由、价格带标签预算输入验证灵活的预算输入和传递机制未来展望未来可以引入 AI 大模型实现真正的智能礼物推荐结合用户画像、支持更多送礼场景如节日、生日、纪念日等、提供礼物购买链接、送礼记录管理等功能让送礼更加智能化和个性化。