14 KiB
14 KiB
Changelog
All notable changes to this project will be documented in this file.
[1.4.7] - 2026-04-09
新增
- ✨ 列表/网格布局切换功能
- 扩展
FavoritesController添加布局切换持久化功能 - 支持在列表模式(一行一个)和网格模式(一行两个)之间切换
- 布局设置自动保存到 SharedPreferences
- 涉及页面:
- 全部列表页面 - 支持网格布局
- 笔记列表页面 - 支持网格布局
- 涉及文件:
lib/services/get/favorites_controller.dart- 添加布局持久化lib/views/footprint/all_list.dart- 支持网格布局lib/views/footprint/local_jilu.dart- 支持网格布局
- 扩展
优化
- 🔧 网格布局卡片优化
- 全部列表页面网格布局:2列,适配点赞诗词和笔记
- 笔记列表页面网格布局:2列,完整功能支持
- 支持锁定、置顶、删除等所有操作
- 深色模式完整支持
新增
- ✨ 诗词答题页面骨架屏
- 在
poetry-page.dart中新增PoetryLevelSkeleton骨架屏组件 - 冷启动加载时显示骨架屏,避免页面闪白
- 包含分数显示、题目卡片、选项等完整骨架
- 支持深色/浅色模式和动态主题色
- 涉及文件:
lib/views/profile/level/poetry-page.dart- 新增 PoetryLevelSkeleton 组件lib/views/profile/level/poetry.dart- 使用骨架屏替换加载指示器
- 在
修复
- 🐛 修复笔记网格布局报错
- 修复
_buildGridNoteCard方法中缺少hasCategory变量定义的问题 - 涉及文件:
lib/views/footprint/local_jilu.dart- 添加hasCategory变量定义
- 修复
- 🐛 修复个人页面统计数据隐藏功能
- 修复点击隐藏按钮后统计数据依旧显示的问题
- 使用
Obx包裹统计部分的 Column,使其能够响应isStatsHidden的变化 - 现在点击隐藏按钮会同时隐藏诗词挑战和统计数据
- 涉及文件:
lib/views/profile/profile_page.dart- 使用 Obx 包裹统计部分
[1.4.6] - 2026-04-09
新增
- ✨ 搜索历史功能
- 新建搜索历史管理器
SearchHistoryManager - 新建搜索历史页面
SearchHistoryPage - 自动保存用户搜索记录,最多保存 20 条
- 支持点击搜索历史快速搜索
- 支持删除单条搜索记录
- 支持清空所有搜索历史
- 使用 iOS 风格 Cupertino 组件
- 涉及文件:
lib/views/active/search/search_history_manager.dart- 搜索历史管理器lib/views/active/search/search_history_page.dart- 搜索历史页面lib/views/active/active_search_page.dart- 搜索页面
- 新建搜索历史管理器
优化
- 🔧 统一消息气泡样式为 GetX 风格
- 将所有页面的 ScaffoldMessenger 改为 GetX 的 Get.snackbar
- 背景使用 GetX 默认样式
- 字体色使用动态主题色
- 根据操作逻辑判断显示位置:
- 成功操作(保存、删除、更新等)显示在底部
- 错误提示(密码错误、输入为空等)显示在顶部
- 涉及文件:
lib/views/footprint/local_jilu.dart- 笔记列表页面lib/views/footprint/collect_notes.dart- 笔记编辑页面lib/views/footprint/footprint_page.dart- 足迹页面lib/views/footprint/all_list.dart- 全部列表页面lib/views/profile/settings/app_fun.dart- 设置页面
- 🔧 公告页面优化
- 添加底部"到底了"提示
- 增加底部 padding 防止被底部 tabs 遮住
- 涉及文件:
lib/views/footprint/load/notice-page.dart- 公告页面
- 🔧 全局Tips开关优化
- 添加开关状态提示消息
- 使用 GetX 消息气泡样式
[1.4.5] - 2026-04-09
新增
- ✨ 添加密码提示和找回密码功能
- 笔记数据结构新增
passwordHint字段 - 在设置/修改密码对话框中新增密码提示输入框
- 密码提示可作为找回密码的凭证
- 在笔记列表密码输入对话框中新增"忘记密码?"选项
- 输入正确的密码提示可重置密码并解锁笔记
- 涉及文件:
lib/controllers/history_controller.dart- 添加密码提示相关方法lib/views/footprint/collect_notes.dart- 添加密码提示输入框lib/views/footprint/local_jilu.dart- 添加忘记密码功能
- 笔记数据结构新增
优化
- 🔧 HistoryController 新增方法
verifyNotePasswordHint()- 验证密码提示resetNotePasswordByHint()- 通过密码提示重置密码
- 🔧 确保密码提示正确保存到 SharedPreferences
saveNote()方法正确处理和保存passwordHint字段- 读取和更新笔记时正确保留密码提示
- 🔧 修复忘记密码按钮功能
- 重构密码输入对话框,使用 Map 返回不同类型的结果
- 确保"忘记密码?"按钮正常工作并切换到密码提示输入模式
- 验证成功后直接进入笔记页面
[1.4.4] - 2026-04-09
新增
- ✨ 创建公告信息页面
- 新建
lib/views/footprint/load/notice-page.dart文件 - 从
https://yy.vogov.cn/api/app/notice_api.php获取公告数据 - 支持下拉刷新、加载状态、错误处理
- 使用 iOS 风格 Cupertino 组件
- 公告卡片显示公告编号、内容、作者、创建时间、更新时间
- 支持可选显示导航栏(
showAppBar参数) - 涉及文件:
lib/views/footprint/load/notice-page.dart- 新增公告页面lib/views/favorites_page.dart- 集成公告页面到推送标签
- 新建
- ✨ 在收藏页面添加推送标签功能
- 在收藏页面的"推送"标签中显示公告列表
- 公告页面嵌入到 TabBarView 中,不显示重复导航栏
- 涉及文件:
lib/views/favorites_page.dart- 添加推送标签处理lib/views/footprint/footprint_page.dart- 移除通知按钮(公告已移至收藏页面)
[1.4.3] - 2026-04-04
修复
- 🐛 修复 Trae 环境下 WiFi 设备安装卡顿问题
- 问题:在 Trae 中运行到三星平板时,一直显示 "Installing build\app\outputs\flutter-apk\app-debug.apk...",但 Android Studio 能正常安装
- 根本原因:WiFi 连接的设备建立 VM Service 连接较慢,导致 Flutter 认为安装卡住
- 解决方案:
- 在 VS Code launch.json 中为所有配置添加
--device-timeout=60参数 - 新增 WiFi 设备专用配置,使用
--device-timeout=120和--device-connection=wireless - 新增 USB 设备专用配置,使用
--device-timeout=30和--device-connection=attached - 创建 WiFi 设备连接辅助脚本(wifi_device_helper.bat 和 wifi_device_helper.ps1)
- 提供手动安装 APK 的选项,绕过 VM Service 连接等待
- 在 VS Code launch.json 中为所有配置添加
- 涉及文件:
.vscode/launch.json- 优化设备连接配置wifi_device_helper.bat- Windows 批处理辅助脚本wifi_device_helper.ps1- PowerShell 辅助脚本
- 使用说明:
- 在 VS Code 中运行时,选择 "flutter_application_2 (WiFi Device)" 配置
- 或使用辅助脚本
wifi_device_helper.bat或wifi_device_helper.ps1 - 如仍卡住,可选择选项 4 手动安装 APK
[1.4.2] - 2026-04-04
新增
- ✨ 创建统一的平台判断工具类 PlatformUtils
- 新建
lib/controllers/settings/is_platform.dart文件 - 统一管理平台判断逻辑,支持 Web、Android、iOS、HarmonyOS、Windows、macOS、Linux 等平台
- 提供平台检测、操作系统信息获取、平台显示名称等功能
- 所有平台判断方法都包含异常处理,确保在 Web 平台也能正常工作
- 新建
重构
- ♻️ 统一平台判断代码
- 将分散在多个文件中的平台判断代码统一使用 PlatformUtils
- 移除了各文件中重复的
import 'dart:io'和import 'package:flutter/foundation.dart' - 简化了平台判断逻辑,提高了代码可维护性
- 涉及文件:
lib/views/profile/app-info.dart- 使用 PlatformUtils 替代 io.Platformlib/views/profile/expand/manu-script.dart- 使用 PlatformUtils.platformDisplayNamelib/views/profile/profile_page.dart- 使用 PlatformUtils.isWeblib/views/profile/components/pop-menu.dart- 使用 PlatformUtilslib/services/get/profile_controller.dart- 使用 PlatformUtilslib/views/profile/guide/app-data.dart- 使用 PlatformUtils.pathSeparatorlib/utils/http/vote_api.dart- 使用 PlatformUtils
修复
- 🐛 修复三星平板卡 Logo 启动页的问题
- 将屏幕适配从初始化阶段移到第一帧绘制后执行
- 延迟 100ms 调用屏幕适配,避免在启动时阻塞
- 为所有初始化步骤添加 try-catch 保护,即使某个初始化失败也能继续启动
- 添加详细的调试日志,方便定位启动问题
- 移除 AppInitializer 中的屏幕适配调用
- 修改 MyApp 为 StatefulWidget,使用 WidgetsBindingObserver
- 涉及文件:
lib/main.dart- 重构启动流程lib/utils/app_initializer.dart- 优化初始化流程
[1.4.1] - 2026-04-03
新增
- ✨ 项目默认图标裁剪
- 使用 Python PIL 库裁剪图片为正方形
- 生成了多种尺寸的应用图标(1024x1024, 512x512, 256x256 等)
- 默认图标尺寸:512x512
- 涉及文件:
assets/app_icon_default.png- 项目默认图标(512x512)assets/app_icon_square.png- 正方形原图(1271x1271)assets/app_icon_*.png- 各种尺寸图标crop_image.py- 图片裁剪脚本
- ✨ Web 图标替换
- 替换了所有 web 平台的图标为新图片
- 包括:favicon.png (32x32)、PWA 图标 (192x192, 512x512)
- 包含 maskable 图标版本
- 涉及文件:
web/favicon.png- 网站图标web/icons/Icon-192.png- PWA 图标web/icons/Icon-512.png- PWA 图标web/icons/Icon-maskable-192.png- PWA 可遮罩图标web/icons/Icon-maskable-512.png- PWA 可遮罩图标replace_web_icons.py- Web 图标替换脚本
- ✨ 从 pubspec.yaml 动态获取版本号
- 使用 package_info_plus 插件动态获取应用版本号和版本代码
- 在 AppConfig 中添加 init() 初始化方法和 appVersion、appVersionCode getter
- 在 main.dart 中应用启动时初始化 AppConfig
- 在 app-info.dart 中动态显示 appVersion 和 appVersionCode
- 涉及文件:
pubspec.yaml- 使用官方 package_info_plus: ^9.0.1lib/config/app_config.dart- 添加动态版本号获取lib/main.dart- 初始化 AppConfiglib/views/profile/app-info.dart- 动态显示版本号
- ✨ 软件更新日志卡片
- 启用应用信息页面的软件更新日志卡片
- 添加了版本 1.4.1 和 1.3.59 的更新内容
- 涉及文件:
lib/views/profile/app-info.dart- 启用更新日志
- ✨ 开源框架列表添加 GetX
- 在应用信息页面的开源框架列表中添加了 GetX
- GetX 协议:MIT
- 涉及文件:
lib/views/profile/app-info.dart- 添加 GetX 到开源框架列表
- ✨ 了解我们页面网站列表优化
- 在官方网站卡片中添加了情景诗词在线版
- 两个网站都添加了独立的复制按钮
- 添加了网站标签显示(官方APP页/情景诗词在线版)
- 涉及文件:
lib/views/profile/settings/learn-us.dart- 新增网站列表和复制按钮
优化
- ⚡ 解决 package_info_plus 依赖冲突
- 解决 wakelock_plus 与 package_info_plus 的版本冲突
- 使用官方版本 package_info_plus: ^9.0.1 替代 git 版本
- 同时保留鸿蒙适配版代码在 packages/flutter_plus_plugins/packages/package_info_plus 以备需要
- 鸿蒙适配版包含完整的 ohos 平台实现
- 涉及文件:
pubspec.yaml- 移除 dependency_overrides,使用官方版本packages/flutter_plus_plugins/packages/package_info_plus- 鸿蒙适配版本地备份
- ⚡ 使用 Get.snackbar 替代 ScaffoldMessenger
- 将应用信息页面中的所有 SnackBar 消息改为 Get.snackbar
- 背景色使用 Get.snackbar 默认颜色
- 文字颜色使用动态主题色
- 图标颜色也使用动态主题色(仅复制提示)
- 添加圆角和边距样式
- 涉及文件:
lib/views/profile/app-info.dart- SnackBar 改为 Get.snackbar
- ⚡ 了解我们页面消息提示优化
- 将了解我们页面中的所有 SnackBar 消息改为 Get.snackbar
- 包括:QQ群号复制、微信公众号复制、网站链接复制
- 背景色使用 Get.snackbar 默认颜色
- 文字颜色使用动态主题色
- 涉及文件:
lib/views/profile/settings/learn-us.dart- 所有消息改为 Get.snackbar
修复
- 🐛 修复版本号不显示的问题
- 将 AppConfig 中的版本号改为 GetX 响应式变量
- 在 app-info.dart 中使用 Obx 观察版本号变化
- 更新默认版本号为 1.4.1
- 涉及文件:
lib/config/app_config.dart- 响应式版本号lib/views/profile/app-info.dart- Obx 包裹版本号显示
删除
- 🗑️ 移除设计风格卡片
- 从应用信息页面移除了设计风格卡片
- 涉及文件:
lib/views/profile/app-info.dart- 移除 _buildDesignStyleCard 调用
[1.3.59] - 2026-04-03
修复
- 🐛 修复出处字段被时间提示语遮挡的问题
- 给诗词卡片内容添加了顶部内边距(60)
- 确保出处等内容不被浮动的时间提示语遮挡
- 涉及文件:
lib/views/home/home_part.dart- 添加顶部内边距
软件特性功能
已开发完成
- ✅ iOS 风格界面设计
- ✅ 诗词浏览与收藏
- ✅ 搜索与分类
- ✅ 答题挑战功能
- ✅ 离线模式
- ✅ 个性化设置
- ✅ 投稿功能
- ✅ 投票功能
- ✅ 天气与十二时辰
- ✅ 图片分享
- ✅ 数据管理
- ✅ 使用教程页面
- ✅ 全站统计页面
- ✅ 修复 AppBar 标题显示问题
- ✅ 个人卡片emoji头像切换功能
- ✅ 深色模式支持
- ✅ 液态玻璃导航栏
- ✅ 多页面主题色支持
开发中
- 🚧 更多功能优化
开发进度
| 功能 | 优先级 | 状态 |
|---|---|---|
| 使用教程 | 1 | ✅ 已完成 |
| 投稿功能优化 | 2 | ✅ 已完成 |
| 界面美化 | 3 | ✅ 已完成 |
| 数据管理功能 | 1 | ✅ 已完成 |
| 主题色支持 | 1 | ✅ 已完成 |
| 性能优化 | 4 | 🔄 进行中 |
| 新功能开发 | 5 | 📋 计划中 |