基于 HarmonyOS(鸿蒙)开发的类「茶百道」奶茶点单 APP,内置 AI 大模型作为智能客服。
一个使用 DevEco Studio 构建、以 ArkTS / ArkUI 编写的鸿蒙原生移动应用示例,覆盖了移动端 App 从登录到点单再到智能客服的完整业务闭环,适合作为鸿蒙开发课程设计、毕业设计或入门实战参考。
本项目以奶茶连锁品牌「茶百道」为原型,在 HarmonyOS 5.0(API 13)上实现了一个完整的点单 App:
- 账号密码登录,带输入非空校验与 Toast 提示;
- 底部 Tab 导航的四大业务模块:首页、点餐、我的、客服;
- 商品列表展示与 AI 智能客服对话,动静结合,界面清爽;
- 项目代码量适中、注释完善,便于初学者阅读与二次开发。
| 类别 | 选型 |
|---|---|
| 语言 / UI | ArkTS + ArkUI(声明式 UI) |
| 工具链 | Hvigor、DevEco Studio |
| 目标系统 | HarmonyOS 5.0.1(API 13) |
| 网络 | @ohos.net.http |
| AI 客服 | 百度智能云「千帆」平台(yi_34b_chat / 文心系列 LLM) |
| 资源管理 | resourceManager 读取 rawfile 配置 |
| 页面 | 文件 | 功能说明 |
|---|---|---|
| 登录页 | pages/Index.ets |
账号密码登录,非空校验(promptAction Toast 提示),通过 router 跳转主页 |
| 主框架 | pages/Main.ets |
底部 4 个 Tab(首页 / 点餐 / 我的 / 客服),Tabs + @Builder 自定义 TabBar |
| 首页 | pages/Home.ets |
海报轮播图(Swiper 自动播放)+ 积分商城 / 会员卡 / 再来一杯 / 活动签到快捷入口 |
| 点餐 | pages/OrderPage.ets |
奶茶商品列表(茉莉奶绿、浓香乌龙、草莓波波等 6 款),List + ForEach 渲染 |
| 我的 | pages/MinePage.ets |
用户头像与昵称、推送通知 / 用户须知 / 隐私政策 / 通用设置入口、退出登录 |
| 客服 | pages/ai.ets |
聊天式智能客服:聊天气泡左右分栏、滚动定位、定时轮询接收 AI 回复 |
- AI 对话流程(
common/AiRequest.ets):先以clientId+clientSecret调用百度 OAuth 接口换取access_token,再携带 token 请求千帆平台的yi_34b_chat对话接口; - 凭据安全:API Key 存放于 rawfile 下的
ai_config.json(已加入.gitignore),由resourceManager.getRawFileContent()运行时读取,密钥不进入版本库; - 聊天体验:用户消息靠左、AI 消息靠右展示;通过
setInterval轮询异步结果并自动滚动到最新一条消息。
AppScope/ # 应用级配置(bundleName、图标等)
entry/
├── src/main/ets/
│ ├── common/
│ │ ├── AiRequest.ets # 百度智能云 AI 请求(获取 token + 对话)
│ │ └── Role.ets # 聊天记录实体(id / name / message)
│ ├── entryability/ # 入口 Ability
│ ├── pages/ # 页面
│ │ ├── Index.ets # 登录页
│ │ ├── Main.ets # 主框架(Tab 容器)
│ │ ├── Home.ets # 首页
│ │ ├── OrderPage.ets # 点餐页
│ │ ├── MinePage.ets # 我的
│ │ └── ai.ets # AI 客服聊天页
│ └── resources/ # 图片、颜色、字符串等资源
└── build-profile.json5 # 构建配置
- DevEco Studio 5.0 及以上
- HarmonyOS SDK 5.0.1(API 13)
- 支持真机或模拟器运行
- 使用 DevEco Studio 打开本项目目录。
- 等待工程同步并自动下载依赖。
- 选择目标设备(模拟器 / 真机)后点击 Run。
- 在登录页输入任意非空用户名和密码即可进入主页。
- 切换到「客服」Tab,可与 AI 大模型进行对话。
AI 凭据从 entry/src/main/resources/rawfile/ai_config.json 读取,该文件已被 .gitignore 忽略不会入库:
{
"clientId": "你的百度智能云 API Key",
"clientSecret": "你的百度智能云 Secret Key"
}首次使用请参照 ai_config.example.json 创建 ai_config.json 并填写真实的密钥。
OrderPage.ets目前仅展示菜单,尚未实现购物车 / 下单支付逻辑。- 登录未接入真实后端,仅做前端非空校验;可扩展为 JWT / Session 认证。
- AI 对话为客户端直连模型接口,凭据通过被忽略的本地文件管理,避免入库泄露;上线前仍建议改为服务端代理,避免密钥随应用分发泄露。
- 我的页面中的设置项目前为占位入口,可继续接入通知开关、隐私政策页等。
本项目为教学 / 演示用途,仅用于学习鸿蒙开发,与「茶百道」品牌无任何关联,请勿用于商业用途。