From f83969ed9cf90cf473f4f1278b33b92a0c00097f Mon Sep 17 00:00:00 2001 From: lxh2875931338 Date: Fri, 31 Jul 2026 20:39:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=86=E5=A4=87=E6=B5=8B=E8=AF=95=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + assets/logo.png | Bin 0 -> 25365 bytes lib/pages/about_page.dart | 173 +++++++++++++++++++++++++++++ lib/pages/battery_health_page.dart | 23 ++-- pubspec.lock | 64 +++++++++++ pubspec.yaml | 2 + 6 files changed, 256 insertions(+), 8 deletions(-) create mode 100644 assets/logo.png create mode 100644 lib/pages/about_page.dart diff --git a/.gitignore b/.gitignore index 3820a95..a41a24b 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,8 @@ migrate_working_dir/ .pub/ /build/ /coverage/ +/windows +/linux # Symbolication related app.*.symbols diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6aeba7eddd2f643f97f00def0055329bacbee4f2 GIT binary patch literal 25365 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 _launchUrl() async { + const url = 'https://git.whitetop.xyz/lxh2875931338/MEIZU-Battery-Healthy'; + final uri = Uri.parse(url); + + try { + if (await canLaunchUrl(uri)) { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } else { + debugPrint('无法打开链接: $url'); + } + } catch (e) { + debugPrint('打开链接失败: $e'); + } + } +} diff --git a/lib/pages/battery_health_page.dart b/lib/pages/battery_health_page.dart index 29570e7..b60515b 100644 --- a/lib/pages/battery_health_page.dart +++ b/lib/pages/battery_health_page.dart @@ -21,6 +21,7 @@ import '../widgets/charge_entry.dart'; import '../widgets/charge_detail_page.dart'; import '../widgets/trend_chart.dart'; import '../pages/changelog_page.dart'; +import '../pages/about_page.dart'; // --- 潘通色定义 --- const Color kHealthGreen = Color(0xFF00B140); @@ -668,23 +669,29 @@ class _BatteryHealthPageState extends State { ), ); break; - case 'dark_mode': + case 'about': // 🟢 新增 + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const AboutPage(), + ), + ); break; - case 'about': + case 'dark_mode': + // 夜间模式切换逻辑(1.7.0 再实现) break; } }, itemBuilder: (context) => [ const PopupMenuItem(value: 'changelog', child: Text('更新日志')), const PopupMenuItem( - value: 'dark_mode', - enabled: false, - child: Text('深色模式(开发中)'), + value: 'about', // 🟢 新增 + child: Text('关于'), ), const PopupMenuItem( - value: 'about', - enabled: false, - child: Text('关于(开发中)'), + value: 'dark_mode', + enabled: false, // 暂时灰显 + child: Text('夜间模式(开发中)'), ), ], ), diff --git a/pubspec.lock b/pubspec.lock index eced6ff..5310969 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -597,6 +597,70 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.4.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.3.32" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "6.4.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.2.2" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.2.5" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.1.5" vector_graphics: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 576fea9..0fa0cab 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,6 +39,7 @@ dependencies: flutter_svg: ^2.0.10+1 shared_preferences: ^2.2.0 flutter_markdown: ^0.7.0 + url_launcher: ^6.3.2 # The following adds the Cupertino Icons font to your application. @@ -82,6 +83,7 @@ flutter: assets: - assets/icons/ - assets/CHANGELOG.md + - assets/logo.png # To add assets to your application, add an assets section, like this: # assets: