diff --git a/lib/modules/settings/controllers/settings_controller.dart b/lib/modules/settings/controllers/settings_controller.dart index fdb560a88..57fdc5b4a 100644 --- a/lib/modules/settings/controllers/settings_controller.dart +++ b/lib/modules/settings/controllers/settings_controller.dart @@ -13,6 +13,7 @@ import '../../../modules/login/controllers/facebookLogin.dart'; import 'package:path_provider/path_provider.dart'; import 'dart:io'; import '../../../routes/app_routes.dart'; +import 'package:package_info_plus/package_info_plus.dart'; class SettingsController extends GetxController { // 语言设置 @@ -82,6 +83,10 @@ class SettingsController extends GetxController { //final ImagePicker _picker = ImagePicker(); final Rx userInfo = User.instance.obs; //使用单例实例 + // 添加版本信息变量 + final appVersion = ''.obs; + final buildNumber = ''.obs; + @override void onInit() { super.onInit(); @@ -102,6 +107,23 @@ class SettingsController extends GetxController { //获取用户信息 loadUserInfo(); + + // 获取应用版本信息 + getAppVersion(); + } + + // 获取应用版本信息的方法 + Future getAppVersion() async { + try { + final PackageInfo packageInfo = await PackageInfo.fromPlatform(); + appVersion.value = packageInfo.version; + buildNumber.value = packageInfo.buildNumber; + print('版本信息: ${packageInfo.version}+${packageInfo.buildNumber}'); + } catch (e) { + appVersion.value = '未知'; + buildNumber.value = '0'; + print('获取版本信息失败: $e'); + } } void loadUserInfo() { diff --git a/lib/modules/settings/views/settings_view.dart b/lib/modules/settings/views/settings_view.dart index 255b02e4e..f52a6c186 100644 --- a/lib/modules/settings/views/settings_view.dart +++ b/lib/modules/settings/views/settings_view.dart @@ -635,32 +635,43 @@ class SettingsView extends GetView { ), ), SizedBox(height: 2.h), - Text( - '${'versions'.tr} 2.4.1 (Build 87)', // 版本 - style: TextStyle( - fontSize: 12.sp, - color: - isDarkMode ? Colors.white70 : Colors.black54, - ), - ), + Obx(() => Text( + // 如果版本信息为空,显示加载中 + controller.appVersion.value.isEmpty + ? '${'versions'.tr} 加载中...' + : '${'versions'.tr} ${controller.appVersion.value} (Build ${controller.buildNumber.value})', + style: TextStyle( + fontSize: 12.sp, + color: isDarkMode + ? Colors.white70 + : Colors.black54, + ), + )), ], ), ], ), - Container( - padding: - EdgeInsets.symmetric(horizontal: 12.w, vertical: 6.h), - decoration: BoxDecoration( - color: isDarkMode - ? Colors.blue[900]!.withOpacity(0.3) - : Colors.blue[100], - borderRadius: BorderRadius.circular(16.r), - ), - child: Text( - 'checkUpdates'.tr, // 检查更新 - style: TextStyle( - fontSize: 12.sp, - color: isDarkMode ? Colors.blue[300] : Colors.blue[600], + InkWell( + onTap: () { + print(controller.appVersion.value); + // 在这里添加检查更新的逻辑 + }, + child: Container( + padding: + EdgeInsets.symmetric(horizontal: 12.w, vertical: 6.h), + decoration: BoxDecoration( + color: isDarkMode + ? Colors.blue[900]!.withOpacity(0.3) + : Colors.blue[100], + borderRadius: BorderRadius.circular(16.r), + ), + child: Text( + 'checkUpdates'.tr, // 检查更新 + style: TextStyle( + fontSize: 12.sp, + color: + isDarkMode ? Colors.blue[300] : Colors.blue[600], + ), ), ), ), diff --git a/pubspec.yaml b/pubspec.yaml index e4b2f4e6e..533f3dd20 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,6 +32,7 @@ dependencies: just_audio: ^0.9.36 webview_flutter: ^4.10.0 flutter_easyloading: ^3.0.5 + package_info_plus: ^8.3.0 window_size: git: