Files
xianyan/docs/spec/readlater_chat_spec.md
Developer fc6fd7be0e feat: 完成v10.1.0版本大更新,新增密保系统、勋章、任务、排行榜等功能
### 变更详情
1. 新增密保问题系统,支持8种预置验证问题,多场景支持多验证方式
2. 新增勋章管理模块,包含勋章配置、用户勋章关联管理
3. 新增每日任务系统,支持任务配置和用户进度追踪
4. 新增赛季排行榜功能,支持周/月赛季排行与奖励结算
5. 新增信息流推荐权重配置管理
6. 重构服务路径分层,按设备/网络/数据分类管理服务
7. 优化Feed请求参数截断逻辑,避免URL过长
8. 新增等级工具类,统一处理等级颜色与称号展示
9. 新增屏幕共享共享信令Provider,复用传输服务实例
10. 新增Android/iOS分享适配与桌面小组件支持
11. 清理旧版测试脚本,新增部署维护脚本
12. 完善用户注销关联数据清理逻辑
2026-05-15 07:02:56 +08:00

32 KiB
Raw Blame History

📖 稍后读会话 + ChatFlowPage 增强 — 开发文档

版本: v13.0.0
创建时间: 2026-05-15
状态: 🚧 开发中
优先级: P1 (高)
负责模块: inspiration / home / core


一、功能概述

1.1 核心需求

  1. 稍后读会话 — 在工作流(InspirationPage)会话列表中新增"稍后读"内置会话,采用聊天对话风格,类似微信"文件传输助手"
  2. 句子详情 → 稍后读 — 主页句子详情Sheet的"稍后读"按钮,点击后将句子信息发送到稍后读会话
  3. 系统分享接收 — 用户在其他App中通过系统分享面板选择"闲言",内容自动进入稍后读会话
  4. ChatFlowPage 增强 — 丰富会话流页面,新增链接预览/文档卡片/句子卡片等气泡样式,所有会话受益
  5. 稍后读设置 — 稍后读页面AppBar右侧设置按钮管理稍后读相关配置

1.2 设计原则

  • 复用现有 ChatFlowPage 聊天框架,通过 ChatSessionType.readlater 区分特殊逻辑
  • 新增气泡组件对所有会话类型可用,不限于稍后读
  • 系统分享接收使用 receive_sharing_intent 本地包,跨平台兼容
  • 遵循 iOS 26 风格,使用项目统一设计令牌

二、架构设计

2.1 整体数据流

┌─────────────────────────────────────────────────────────────┐
│                      数据来源                                │
│  ┌──────────┐  ┌──────────────┐  ┌─────────────────────┐   │
│  │ 句子详情  │  │ 系统分享面板  │  │ 稍后读会话输入框     │   │
│  │ 稍后读按钮│  │ (其他App)    │  │ (用户手动发送)       │   │
│  └────┬─────┘  └──────┬───────┘  └──────────┬──────────┘   │
│       │               │                      │              │
│       ▼               ▼                      ▼              │
│  ┌─────────────────────────────────────────────────┐        │
│  │         SharingReceiverService (统一入口)        │        │
│  │  - receive_sharing_intent (Android/iOS)          │        │
│  │  - URL参数 (Web)                                 │        │
│  │  - 命令行参数 (Windows)                           │        │
│  └────────────────────┬────────────────────────────┘        │
│                       │                                      │
│                       ▼                                      │
│  ┌─────────────────────────────────────────────────┐        │
│  │         ChatMessageService (消息持久化)          │        │
│  │  - sendText / sendImage / sendFile / sendVideo   │        │
│  │  - sendLink / sendDocument / sendReadLaterSentence│       │
│  │  - conversationId: 'readlater'                   │        │
│  └────────────────────┬────────────────────────────┘        │
│                       │                                      │
│                       ▼                                      │
│  ┌─────────────────────────────────────────────────┐        │
│  │         ChatFlowPage (增强版)                     │        │
│  │  - 动态标题/配置 (按sessionType)                  │        │
│  │  - 新气泡: LinkBubble / DocumentBubble /          │        │
│  │           SentenceCardBubble                      │        │
│  │  - 稍后读设置面板                                 │        │
│  └─────────────────────────────────────────────────┘        │
└─────────────────────────────────────────────────────────────┘

2.2 模块依赖关系

home (句子详情Sheet)
  │ toggleReadLater()
  └──→ inspiration (ChatMessageService)
         │ sendReadLaterSentence()
         └──→ Drift数据库 (chat_messages表)

core (SharingReceiverService)
  │ 接收分享数据
  └──→ inspiration (ChatMessageService)
         │ sendText/sendImage/sendFile/sendLink
         └──→ Drift数据库 (chat_messages表)

inspiration (ChatFlowPage)
  │ 读取消息
  └──→ ChatProvider (chatMessagesProvider['readlater'])
         └──→ Drift数据库 (chat_messages表)

三、数据模型扩展

3.1 ChatMessageType 新增枚举

枚举值 id label emoji 说明
link 'link' 链接消息 🔗 URL + OG预览卡片
document 'document' 文档消息 📄 PDF/Word/Excel等文档卡片
readlaterSentence 'readlater_sentence' 稍后读句子 💬 从句子详情收藏的句子卡片

文件: lib/features/inspiration/models/chat_message.dart

3.2 ChatSessionType 新增枚举

枚举值 id label
readlater 'readlater' 稍后读

文件: lib/features/inspiration/models/chat_session.dart

3.3 ChatMessage.meta 字段约定

{
  "url": "https://flutter.dev",
  "title": "Flutter - Beautiful native apps",
  "description": "Build apps for any screen",
  "imageUrl": "https://flutter.dev/favicon.png",
  "sourceApp": "Chrome"
}

文档消息 (type=document)

{
  "documentType": "pdf",
  "pageCount": 12
}

稍后读句子 (type=readlaterSentence)

{
  "sentenceId": "12345",
  "feedType": "yike",
  "feedName": "一刻",
  "likeCount": 128,
  "commentCount": 32,
  "favoriteCount": 56,
  "views": 1024
}

四、UI设计

4.1 稍后读会话入口

InspirationPage 会话列表中,"稍后读"作为置顶内置会话显示:

┌──────────────────────────────────┐
│ 📌 置顶                          │
│ ┌────────────────────────────┐   │
│ │ 📖  稍后读            HOT  │   │
│ │     收藏内容,稍后阅读      │   │
│ │     刚刚                    │   │
│ └────────────────────────────┘   │
│ ┌────────────────────────────┐   │
│ │ 🔍  发现                   │   │
│ │     今日一读/分类浏览       │   │
│ └────────────────────────────┘   │
│ 💬 对话                          │
│ ┌────────────────────────────┐   │
│ │ 📁  文件传输助手            │   │
│ │     传输文件/设备聊天       │   │
│ └────────────────────────────┘   │
│ ...                              │
└──────────────────────────────────┘

4.2 稍后读聊天页面

┌──────────────────────────────────┐
│  ←  📖 稍后读          ⚙️       │  ← AppBar
├──────────────────────────────────┤
│                                  │
│  🤖 ┌──────────────────────┐    │  ← 句子卡片气泡
│     │ 💬 灵感句子            │    │
│     │ ──────────────────    │    │
│     │ "人生如逆旅,          │    │
│     │  我亦是行人"           │    │
│     │                       │    │
│     │ —— 苏轼               │    │
│     │ 📖 《临江仙》          │    │
│     │                       │    │
│     │ ❤️ 128  💬 32  ⭐ 56  │    │
│     │ [已读✓]  [分享]       │    │
│     └──────────────────────┘    │
│                                  │
│          ┌──────────────────┐    │  ← 用户发送的链接
│          │ 🔗 flutter.dev   │    │
│          │ Flutter官网      │    │
│          │ [打开] [复制]    │    │
│          └──────────────────┘    │
│                                  │
│  🤖 ┌──────────────────────┐    │  ← 文档卡片气泡
│     │ 📕 报告.pdf           │    │
│     │ 2.3 MB · PDF文档     │    │
│     │ [打开] [分享]        │    │
│     └──────────────────────┘    │
│                                  │
│          ┌──────────────────┐    │  ← 用户发送的图片
│          │ 🖼️               │    │
│          │  (图片缩略图)     │    │
│          └──────────────────┘    │
│                                  │
├──────────────────────────────────┤
│  📎  [输入文字/链接...]    📤    │  ← 输入栏
└──────────────────────────────────┘

4.3 新增气泡组件设计

ChatLinkBubble — 链接预览卡片

┌──────────────────────────────────┐
│ 🔗 链接                          │
│ ┌────────────────────────────┐   │
│ │ 🖼️ OG图片 (如有)           │   │
│ └────────────────────────────┘   │
│ Flutter - Beautiful native apps  │
│ Build apps for any screen        │
│ 🔗 flutter.dev                   │
│ ┌──────────┐  ┌──────────┐      │
│ │ 🌐 打开   │  │ 📋 复制   │      │
│ └──────────┘  └──────────┘      │
└──────────────────────────────────┘
  • 毛玻璃卡片背景accent色左边框
  • OG元数据: title / description / imageUrl 从 meta 读取
  • 图片使用 CachedNetworkImage,无图时显示域名首字母头像
  • 操作按钮: 打开链接(url_launcher) + 复制链接(Clipboard)

ChatDocumentBubble — 文档卡片

┌──────────────────────────────────┐
│ ┌────┐                           │
│ │ 📕 │  项目报告.pdf              │
│ │    │  2.3 MB · PDF文档          │
│ └────┘  2026-05-15               │
│ ┌──────────┐  ┌──────────┐      │
│ │ 📂 打开   │  │ ↗️ 分享   │      │
│ └──────────┘  └──────────┘      │
└──────────────────────────────────┘
  • 左侧大emoji图标(按类型: PDF📕/Word📘/Excel📗/PPT📙/ZIP📦/TXT📝/其他📄)
  • 右侧文件名+大小+类型+日期
  • 操作按钮: 打开文件 + 分享文件

ChatSentenceCardBubble — 句子卡片

┌──────────────────────────────────┐
│ 💬 灵感句子                       │
│ ────────────────────────────     │
│                                   │
│ "人生如逆旅,我亦是行人"          │
│                                   │
│ —— 苏轼                          │
│ 📖 《临江仙》                     │
│                                   │
│ ❤️ 128   💬 32   ⭐ 56           │
│ ────────────────────────────     │
│ [📖 已读]  [↗️ 分享]             │
└──────────────────────────────────┘
  • 渐变背景(按feedType分类着色复用现有_gradientColors逻辑)
  • 白色文字shimmer动画
  • 底部统计栏 + 操作按钮
  • 点击跳转句子详情Sheet

4.4 稍后读设置面板

点击AppBar右侧⚙️图标弹出CupertinoActionSheet

选项 图标 说明
稍后读列表 📋 跳转原ReadLaterPage(服务端API版本)
标记全部已读 将所有未读消息标记为已读
清空稍后读 🗑️ 二次确认后清空所有消息(红色警告)
导出内容 📤 导出为JSON/Markdown
统计信息 📊 显示总数/已读/未读/按类型统计
分享接收 🔗 系统分享接收开关
取消 关闭面板

4.5 ChatFlowPage 动态配置

配置项 普通会话(chat) 稍后读会话(readlater)
AppBar标题 💬 会话流 📖 稍后读
分类栏 显示(7个分类) 隐藏
新建会话按钮 显示 隐藏
设置按钮 会话设置页 稍后读设置面板
输入框placeholder "说点什么..." "添加链接/文字..."
空消息提示 "开始你的灵感之旅 " "收藏内容,稍后阅读 📖"
附件按钮 显示(8种类型) 显示(8种类型)
回复功能 支持 支持
推送功能 支持 不支持(稍后读无推送)

五、系统分享接收

5.1 第三方库

  • 库名: receive_sharing_intent
  • 版本: ^1.8.1
  • 引用方式: 本地包 packages/receive_sharing_intent/
  • 跨平台: Android / iOS / Web ⚠️(URL参数) / Windows ⚠️(命令行参数)

5.2 Android 配置

文件: android/app/src/main/AndroidManifest.xml

在主Activity中新增intent-filter

<!-- 文本分享 -->
<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain"/>
</intent-filter>
<!-- 图片分享 -->
<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="image/*"/>
</intent-filter>
<!-- 视频分享 -->
<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="video/*"/>
</intent-filter>
<!-- 文件分享 -->
<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="application/*"/>
</intent-filter>
<!-- 多文件分享 -->
<intent-filter>
    <action android:name="android.intent.action.SEND_MULTIPLE"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="*/*"/>
</intent-filter>

5.3 iOS 配置

文件: ios/Runner/Info.plist

新增URL Scheme和App Group配置支持ShareExtension。

5.4 SharingReceiverService

文件: lib/core/services/sharing_receiver_service.dart

class SharingReceiverService {
  // 单例
  static final instance = SharingReceiverService._();
  
  // 初始化 (main.dart中调用)
  Future<void> init();
  
  // 监听分享数据流
  StreamSubscription? _textSub;
  StreamSubscription? _fileSub;
  
  // 处理文本/链接分享
  void _handleText(String text);
  
  // 处理文件分享(图片/视频/文档)
  void _handleFile(SharedFile file);
  
  // Web端: URL参数解析
  void _handleWebShare(Uri uri);
  
  // Windows端: 命令行参数解析
  void _handleWindowsShare(List<String> args);
  
  // 释放资源
  void dispose();
}

5.5 分享数据处理逻辑

分享类型 判断条件 处理方式
纯文本 无URL sendText(conversationId: 'readlater')
链接 含http/https URL sendLink(conversationId: 'readlater') + OG元数据
图片 mimeType=image/* sendImage(conversationId: 'readlater')
视频 mimeType=video/* sendVideo(conversationId: 'readlater')
文档 mimeType=application/* sendDocument(conversationId: 'readlater')
多文件 SEND_MULTIPLE 逐个处理,批量写入

六、稍后读按钮 → 稍后读会话 数据流

6.1 现有流程

SentenceDetailSheet "稍后读" 按钮
  → onReadLater回调
  → HomeInteractionMixin.toggleReadLater(id)
    → FeedService.action('readlater')  // 服务端标记
    → 本地状态更新 (isReadLater: true)

6.2 增强流程

SentenceDetailSheet "稍后读" 按钮
  → onReadLater回调
  → HomeInteractionMixin.toggleReadLater(id)
    → FeedService.action('readlater')        // 服务端标记(保持不变)
    → 本地状态更新 (isReadLater: true)        // 保持不变
    → ChatMessageService.sendReadLaterSentence( // 新增: 写入稍后读会话
        conversationId: 'readlater',
        text: sentence.text,
        author: sentence.author,
        source: sentence.feedName,
        meta: {
          'sentenceId': sentence.id,
          'feedType': sentence.feedType,
          'feedName': sentence.feedName,
          'likeCount': sentence.likeCount,
          'views': sentence.views,
        }
      )
    → ChatSessionNotifier.refreshFromChat()   // 更新会话列表最后消息

6.3 取消稍后读

取消稍后读时,不删除稍后读会话中的消息(保留历史记录),仅在句子卡片上显示"已移出稍后读"状态标记。


七、文件结构变更

7.1 新增文件

文件路径 说明
lib/core/services/sharing_receiver_service.dart 统一分享接收服务
lib/features/inspiration/presentation/widgets/chat_link_bubble.dart 链接预览卡片气泡
lib/features/inspiration/presentation/widgets/chat_document_bubble.dart 文档卡片气泡
lib/features/inspiration/presentation/widgets/chat_sentence_card_bubble.dart 句子卡片气泡
packages/receive_sharing_intent/ 本地包: 分享接收库

7.2 修改文件

文件路径 修改内容
lib/features/inspiration/models/chat_message.dart ChatMessageType新增link/document/readlaterSentence
lib/features/inspiration/models/chat_session.dart ChatSessionType新增readlater
lib/features/inspiration/presentation/chat_flow_page.dart 动态标题/配置/新气泡分发/稍后读设置
lib/features/inspiration/presentation/widgets/chat_bubble.dart 新消息类型分发逻辑
lib/features/inspiration/providers/chat_session_provider.dart 新增readlater内置会话
lib/features/inspiration/providers/chat_provider.dart 稍后读会话消息管理
lib/features/inspiration/services/chat_message_service.dart 新增sendLink/sendDocument/sendReadLaterSentence
lib/features/home/providers/home_interaction_mixin.dart toggleReadLater增加写入稍后读会话逻辑
lib/features/inspiration/presentation/inspiration_page.dart _onSessionTap新增readlater路由分发
lib/core/router/app_router.dart 新增/readlater-chat路由
android/app/src/main/AndroidManifest.xml 新增分享接收intent-filter
ios/Runner/Info.plist 新增URL Scheme/App Group
pubspec.yaml 新增receive_sharing_intent本地包依赖
lib/main.dart 初始化SharingReceiverService
CHANGELOG.md 版本更新日志

八、开发归档清单

状态说明: ☐ 未开始 | 🚧 进行中 | 已完成 | ⚠️ 需修复 | 已取消

Phase 1: 数据模型扩展

# 任务 文件 状态 备注
1.1 ChatMessageType新增link/document/readlaterSentence chat_message.dart 含isLink/isDocument/isReadlaterSentence计算属性
1.2 ChatSessionType新增readlater chat_session.dart
1.3 ChatMessage.meta字段约定文档 本文档第三节
1.4 Drift数据库迁移(如需新字段) app_database.dart 现有表结构兼容,无需迁移

Phase 2: 内置会话注册

# 任务 文件 状态 备注
2.1 _buildSessions()新增readlater内置会话 chat_session_provider.dart 默认置顶HOT标签
2.2 _onSessionTap新增readlater路由分发 inspiration_page.dart
2.3 AppRoutes新增readlaterChat常量 app_router.dart
2.4 GoRoute新增/readlater-chat路由 app_router.dart 传入sessionType参数

Phase 3: ChatFlowPage 增强

# 任务 文件 状态 备注
3.1 ChatFlowPage接收sessionType参数 chat_flow_page.dart 含isReadlater计算属性
3.2 动态标题/配置(按sessionType) chat_flow_page.dart 标题/placeholder/previousPageTitle
3.3 稍后读空消息提示UI chat_flow_page.dart "收藏内容,稍后阅读 📖"
3.4 稍后读设置面板(ActionSheet) chat_flow_page.dart 含标记已读/清空/导出/统计
3.5 隐藏分类栏(稍后读模式) chat_flow_page.dart
3.6 隐藏新建会话按钮(稍后读模式) chat_flow_page.dart 替换为设置按钮

Phase 4: 新增气泡组件

# 任务 文件 状态 备注
4.1 ChatLinkBubble — 链接预览卡片 chat_link_bubble.dart OG预览+打开/复制按钮
4.2 ChatDocumentBubble — 文档卡片 chat_document_bubble.dart 按类型emoji+打开/分享
4.3 ChatSentenceCardBubble — 句子卡片 chat_sentence_card_bubble.dart 渐变背景+统计+shimmer
4.4 ChatBubble新增消息类型分发 chat_bubble.dart link/document/readlaterSentence
4.5 用户气泡支持新类型渲染 chat_bubble.dart
4.6 AI气泡支持新类型渲染 chat_bubble.dart

Phase 5: ChatMessageService 扩展

# 任务 文件 状态 备注
5.1 sendLink()方法 chat_message_service.dart type=link, meta含url/title/description
5.2 sendDocument()方法 chat_message_service.dart type=document, 含_documentTypeFromMime
5.3 sendReadLaterSentence()方法 chat_message_service.dart type=readlaterSentence, meta含句子详情
5.4 ChatNotifier新增对应发送方法 chat_provider.dart sendLinkMessage/sendDocumentMessage/sendReadLaterSentenceMessage

Phase 6: 稍后读按钮 → 稍后读会话

# 任务 文件 状态 备注
6.1 toggleReadLater增加写入稍后读会话 home_interaction_mixin.dart 仅标记时写入,取消时不删除
6.2 更新会话列表最后消息/时间 chat_session_provider.dart refreshFromChat已支持readlater
6.3 稍后读会话未读数更新 chat_session_provider.dart
6.4 句子卡片气泡点击跳转详情Sheet chat_sentence_card_bubble.dart onTapSentence回调+GestureDetector+分享

Phase 7: 系统分享接收

# 任务 文件 状态 备注
7.1 下载receive_sharing_intent到本地packages/ packages/receive_sharing_intent/ v1.8.1从pub缓存复制
7.2 pubspec.yaml新增本地包依赖 pubspec.yaml path: packages/receive_sharing_intent
7.3 SharingReceiverService实现 sharing_receiver_service.dart 统一入口,单例模式
7.4 Android Manifest新增intent-filter AndroidManifest.xml 5个intent-filter
7.5 iOS Info.plist配置 Info.plist URL Scheme(xianyan://) + App Group
7.6 main.dart初始化SharingReceiverService main.dart 含setNavigatorKey
7.7 Web端兼容(URL参数) sharing_receiver_service.dart 条件编译
7.8 Windows端兼容(命令行参数) sharing_receiver_service.dart 条件编译
7.9 分享数据→稍后读会话写入 sharing_receiver_service.dart 文本/链接/图片/视频/文档
7.10 App从后台被分享唤起时的路由跳转 sharing_receiver_service.dart _navigateToReadlater+rootNavigatorKey

Phase 8: 测试与验收

# 任务 范围 状态 备注
8.1 句子详情→稍后读→会话显示 端到端
8.2 取消稍后读→会话保留历史 端到端
8.3 手动发送文本/链接到稍后读 端到端
8.4 手动发送图片/视频/文件到稍后读 端到端
8.5 系统分享文本→稍后读会话 Android+iOS
8.6 系统分享图片→稍后读会话 Android+iOS
8.7 系统分享文件→稍后读会话 Android+iOS
8.8 链接预览卡片渲染 UI 有OG图/无OG图
8.9 文档卡片渲染 UI PDF/Word/Excel/ZIP
8.10 句子卡片渲染 UI 渐变背景+统计+操作
8.11 稍后读设置面板功能 UI 全部已读/清空/导出/统计
8.12 普通会话也能使用新气泡 回归测试 link/document在普通会话也可用
8.13 空指针检测 稳定性 所有新增页面/组件
8.14 动态主题适配 UI 日间/夜间/纯黑模式
8.15 Web/Windows端兼容 跨平台 分享接收降级处理

九、验收标准

9.1 功能验收

  • 工作流会话列表显示"📖 稍后读"会话,默认置顶
  • 点击稍后读会话,进入聊天风格页面
  • 主页句子详情Sheet点击"稍后读",句子出现在稍后读会话中
  • 稍后读会话支持发送文本/链接/图片/视频/文件/文档
  • 链接消息显示OG预览卡片
  • 文档消息显示文档卡片(PDF/Word/Excel等)
  • 句子消息显示句子卡片(渐变背景+统计)
  • 其他App分享文本/图片/文件到闲言,自动进入稍后读会话
  • 稍后读设置面板功能正常(标记已读/清空/导出/统计)
  • 普通会话也能使用新增的链接/文档气泡

9.2 UI验收

  • 遵循iOS 26风格使用项目统一设计令牌
  • 毛玻璃效果正常(日间/夜间/纯黑)
  • 动态主题切换无闪烁
  • 气泡动画流畅(shimmer/渐变/tilt)
  • 空状态显示正确
  • 长按上下文菜单正常

9.3 稳定性验收

  • 无空指针崩溃
  • 无内存泄漏(控制器/流/订阅正确释放)
  • 大量消息时滚动流畅
  • 分享接收时App未运行也能正确处理

十、风险与注意事项

风险 影响 缓解措施
receive_sharing_intent库在Web/Windows不支持 分享接收降级 条件编译Web用URL参数Windows用命令行参数
Drift数据库迁移可能影响现有数据 数据丢失 新增字段使用默认值,不删除现有列
OG元数据获取需要网络请求 链接预览延迟 异步加载先显示URLOG数据加载后更新
大文件分享可能导致内存问题 OOM 限制单文件大小,大文件分片处理
稍后读会话消息量过大 性能下降 分页加载,虚拟列表

十一、版本记录

版本 日期 变更
v1.0 2026-05-15 初始设计文档
v1.1 2026-05-15 Phase 1-7 实现完成,编译通过(0 error)3项待后续补充(⚠️)
v1.2 2026-05-15 全部归档清单完成,新增可扩展功能分析

十二、稍后读可扩展功能分析

基于项目现有依赖库(pubspec.yaml)和已实现功能,分析稍后读会话可扩展的功能方向

12.1 基于现有库的可扩展功能

# 功能 依赖库 优先级 说明
E1 🔗 链接OG元数据自动抓取 dio + flutter_html P1 收到链接消息时异步抓取OG标题/描述/图片更新meta字段
E2 📄 文档预览 flutter_html + file_picker P2 文档卡片点击后PDF用flutter_html渲染Word/Excel转PDF预览
E3 🖼️ 图片编辑后保存 pro_image_editor + image P2 图片消息长按可进入编辑器,裁剪/标注后覆盖保存
E4 🎬 视频压缩后保存 video_compress + gal P2 视频消息长按可压缩后保存到相册
E5 📤 多格式导出 archive + share_plus + gal P1 稍后读内容批量导出为ZIP/Markdown/JSON/图片
E6 🔔 稍后读提醒 flutter_local_notifications P1 定时提醒未读稍后读内容,支持自定义提醒时间
E7 📊 阅读统计 fl_chart P2 稍后读统计面板:按类型/日期/来源的阅读数据可视化
E8 🔍 全文搜索 Drift LIKE / FTS5 P1 稍后读会话内搜索,支持文本/链接/文件名搜索
E9 🏷️ 标签/分类管理 hive + 现有分类系统 P2 给稍后读内容打标签,按标签筛选
E10 📋 剪贴板监控 flutter_secure_storage + 后台服务 P3 自动检测剪贴板中的链接,提示保存到稍后读
E11 🔄 离线同步 supabase_flutter + Drift P2 稍后读内容云端同步,多设备共享
E12 🎨 句子卡片制作 pro_image_editor + cached_network_image P2 句子卡片气泡长按可制作壁纸/分享图
E13 📱 桌面小组件 home_widget(需新增) P3 iOS/Android桌面Widget显示未读稍后读数量
E14 🗂️ 文件夹管理 Drift + 现有会话系统 P3 稍后读内容按文件夹分组管理
E15 🤖 AI摘要 supabase_flutter(Edge Functions) P3 对长文本/链接内容自动生成AI摘要

12.2 基于现有文件传输模块的可扩展功能

# 功能 依赖模块 优先级 说明
E16 📡 跨设备稍后读同步 file_transfer + nearby_service P2 通过局域网将稍后读内容推送到其他设备
E17 💬 稍后读协作 TransferChatPage + SignalingService P3 与好友共享稍后读列表,互相推荐内容

12.3 推荐实施顺序

第一批 (P1):

  • E1 链接OG元数据抓取 — 提升链接消息体验
  • E5 多格式导出 — 实用性强
  • E6 稍后读提醒 — 核心体验
  • E8 全文搜索 — 内容管理必需

第二批 (P2):

  • E2 文档预览 / E4 视频压缩 / E7 阅读统计 / E9 标签管理 / E11 离线同步 / E12 句子卡片制作 / E16 跨设备同步

第三批 (P3):

  • E10 剪贴板监控 / E13 桌面小组件 / E14 文件夹管理 / E15 AI摘要 / E17 稍后读协作