feat: 进行功能分区方便后期维护
- 添加导航条目和分类数据模型 - 实现导航卡片网格展示 - 支持点击卡片打开链接 - 添加主题样式(渐变色、卡片阴影) - 区分系统默认和自定义条目 - 添加分类统计信息"
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
/// 打开外部链接的能力抽象。
|
||||
///
|
||||
/// 界面层只依赖这个接口:一来把「打开链接」这种平台相关行为挡在 UI 之外,
|
||||
/// 二来测试里可以注入假实现,避免真的弹出浏览器。
|
||||
abstract interface class UrlOpener {
|
||||
/// 打开 [url]。
|
||||
void open(String url);
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import 'package:web/web.dart' as web;
|
||||
|
||||
import 'url_opener.dart';
|
||||
|
||||
/// [UrlOpener] 的 Web 实现:在新标签页打开链接。
|
||||
///
|
||||
/// 当前项目只面向 Web,因此这是唯一的实现;
|
||||
/// 以后要支持其它平台,只需新增实现类,界面代码无需改动。
|
||||
class WebUrlOpener implements UrlOpener {
|
||||
const WebUrlOpener();
|
||||
|
||||
@override
|
||||
void open(String url) {
|
||||
web.window.open(url, '_blank');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user