File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # SelfAgent App 功能规格说明
2+
3+ ## 概述
4+
5+ SelfAgent 是一个 Android 原生应用,主要功能是作为一个** 站点管理器 + 实时消息推送客户端** 。用户可以管理多个网站入口,通过内置 WebView 访问,同时接收服务器推送的实时消息通知。
6+
7+ ## 核心功能
8+
9+ ### 1. 站点管理
10+
11+ - ** 添加站点** : 用户可以添加自定义网站,输入名称和 URL
12+ - ** 删除站点** : 长按站点卡片可删除
13+ - ** 打开站点** : 点击站点卡片,在内置 WebView 中打开网页
14+ - ** 持久化存储** : 站点列表保存在 SharedPreferences,重启后保留
15+
16+ 默认站点:
17+ ```
18+ 名称: 主系统
19+ URL: http://111.170.6.103:9999/
20+ ```
21+
22+ ### 2. WebSocket 实时消息推送
23+
24+ - ** 连接地址** : ` ws://111.170.6.103:9999/ws `
25+ - ** 自动重连** : 断开后 5 秒自动重连
26+ - ** 消息格式** : 支持 JSON 和纯文本
27+
28+ JSON 消息格式:
29+ ``` json
30+ {
31+ "title" : " 消息标题" ,
32+ "message" : " 消息内容" // 或 "body"
33+ }
34+ ```
35+
36+ 收到消息后:
37+ 1 . 弹出系统通知 (Notification)
38+ 2 . 添加到应用内通知列表
39+ 3 . 更新通知角标数量
40+
41+ ### 3. 日程管理
42+
43+ - ** API 地址** : ` http://111.170.6.103:9999/api/daily.php `
44+ - ** 功能** : 获取今日日程列表
45+ - ** 展示** : 底部弹窗显示,支持刷新
46+
47+ 日程数据格式:
48+ ``` json
49+ [
50+ {
51+ "id" : " 1" ,
52+ "time" : " 09:00" ,
53+ "title" : " 会议" ,
54+ "description" : " 项目周会"
55+ }
56+ ]
57+ ```
58+
59+ ### 4. 通知面板
60+
61+ - 点击顶部通知图标展开/收起
62+ - 显示所有收到的推送消息
63+ - 支持一键清空
64+
65+ ## 技术架构
66+
67+ ### 服务器端点
68+
69+ | 功能 | 地址 | 协议 |
70+ | ------| ------| ------|
71+ | 主系统 | http://111.170.6.103:9999/ | HTTP |
72+ | WebSocket | ws://111.170.6.103:9999/ws | WebSocket |
73+ | 日程 API | http://111.170.6.103:9999/api/daily.php | HTTP GET |
74+
75+ ### 依赖库
76+
77+ - OkHttp: HTTP 请求和 WebSocket
78+ - Gson: JSON 解析
79+ - AndroidX: UI 组件
80+
81+ ### 权限
82+
83+ - ` INTERNET ` : 网络访问
84+ - ` POST_NOTIFICATIONS ` : 发送通知
85+
86+ ## UI 结构
87+
88+ ```
89+ MainActivity (主界面)
90+ ├── Header (顶部栏)
91+ │ ├── 标题 "SelfAgent"
92+ │ ├── 日程按钮 → ScheduleDialog
93+ │ └── 通知按钮 (带角标) → 通知面板
94+ ├── 通知面板 (可展开/收起)
95+ │ ├── 消息列表
96+ │ └── 清空按钮
97+ ├── 站点列表 (RecyclerView)
98+ │ └── 站点卡片 (点击打开, 长按删除)
99+ └── 添加站点按钮 → 添加弹窗
100+
101+ WebViewActivity (网页浏览)
102+ ├── Header
103+ │ ├── 返回按钮
104+ │ └── 站点名称
105+ └── WebView
106+ ```
107+
108+ ## 主题色
109+
110+ - 主色: ` #667eea ` (紫蓝色)
111+ - 背景: ` #f5f7fa ` (浅灰)
112+ - 角标: ` #ff4757 ` (红色)
113+
114+ ## 数据流
115+
116+ ```
117+ 服务器 WebSocket ──推送消息──→ App
118+ ├─→ 系统通知
119+ └─→ 通知列表
120+
121+ 用户 ──点击站点──→ WebView ──加载──→ 服务器网页
122+
123+ 用户 ──点击日程──→ App ──HTTP GET──→ 日程 API
124+ ←─JSON─┘
125+ ```
126+
127+ ## 构建
128+
129+ 使用 Google Colab 构建:
130+ 1 . 打开 ` build_colab.ipynb `
131+ 2 . 运行所有单元格
132+ 3 . 下载生成的 APK
133+
134+ ## 扩展建议
135+
136+ 如需修改或扩展功能:
137+
138+ 1 . ** 更换服务器地址** : 修改 ` MainActivity.java ` 中的常量
139+ 2 . ** 添加新功能** : 在 ` MainActivity ` 中添加新的 UI 和逻辑
140+ 3 . ** 修改 UI 样式** : 编辑 ` res/layout/ ` 和 ` res/drawable/ ` 中的 XML 文件
141+ 4 . ** 添加新页面** : 创建新的 Activity 并在 AndroidManifest.xml 中注册
You can’t perform that action at this time.
0 commit comments