From f9d1c41d428512edc0a8f6fcd2352fe7fa04800d Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 1 Apr 2025 23:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B8=B8=E5=AE=A2=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/controllers/login_controller.dart | 49 +++++++++++++++++-- lib/modules/login/views/login_view.dart | 8 +++ 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/lib/modules/login/controllers/login_controller.dart b/lib/modules/login/controllers/login_controller.dart index a2c48118b..4dac80fc0 100644 --- a/lib/modules/login/controllers/login_controller.dart +++ b/lib/modules/login/controllers/login_controller.dart @@ -1,5 +1,6 @@ import 'package:get/get.dart'; import 'package:flutter/material.dart'; +import 'package:logger/web.dart'; import '../../../routes/app_routes.dart'; import 'dart:convert'; import 'dart:ffi'; @@ -10,6 +11,7 @@ import '../../../data/services/network/api.dart'; import '../../../../data/models/user_Info.dart'; //import 'package:shared_preferences/shared_preferences.dart'; import 'package:get_storage/get_storage.dart'; +import 'package:device_info_plus/device_info_plus.dart'; enum LoginViewState { welcome, // 欢迎页面 @@ -20,6 +22,8 @@ class LoginController extends GetxController { static LoginController get to => Get.find(); final GetStorage _storage = GetStorage(); + String _deviceId = ''; + // 添加国家编码相关状态 final _selectedCountryCode = ''.obs; final _selectedCountryFlag = '✉️'.obs; @@ -166,6 +170,7 @@ class LoginController extends GetxController { void onInit() { super.onInit(); _viewState.value = LoginViewState.welcome; + _initDeviceInfo(); } @override @@ -175,6 +180,25 @@ class LoginController extends GetxController { super.onClose(); } + // 初始化设备信息 + Future _initDeviceInfo() async { + try { + DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); + if (GetPlatform.isAndroid) { + AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo; + _deviceId = androidInfo.id; + }else if (GetPlatform.isIOS) { + IosDeviceInfo iosInfo = await deviceInfo.iosInfo; + _deviceId = iosInfo.identifierForVendor ?? 'unknown'; + } + Logger().d('deviceId: $_deviceId'); + }catch(e){ + Logger().e('获取设备信息失败: $e'); + _deviceId = 'unknown'; + } + + } + // 更新选中的国家编码 void updateCountryCode(String code, String flag) { _selectedCountryCode.value = code; @@ -418,7 +442,7 @@ class LoginController extends GetxController { "vcode": verificationCodeController.text, "ttoken": "", "phonemodel": "", - "phonemac": "", + "phonemac": _deviceId, "name": "", "avatar": "", }); @@ -443,7 +467,7 @@ class LoginController extends GetxController { "vcode": verificationCodeController.text, "ttoken": "", "phonemodel": "", - "phonemac": "", + "phonemac": _deviceId, "name": "", "avatar": "", }); @@ -472,7 +496,7 @@ class LoginController extends GetxController { "vcode": "", "ttoken": facebook.token, "phonemodel": "", - "phonemac": "", + "phonemac": _deviceId, "name": facebook.name, "avatar": facebook.pictureurl, }); @@ -501,7 +525,7 @@ class LoginController extends GetxController { "vcode": "", "ttoken": google.token, "phonemodel": "", - "phonemac": "", + "phonemac": _deviceId, "name": google.displayName, "avatar": google.pictureurl, }); @@ -535,7 +559,7 @@ class LoginController extends GetxController { "vcode": "", "ttoken": FlWX().code, "phonemodel": "", - "phonemac": "", + "phonemac": _deviceId, "name": FlWX().nickname, "avatar": FlWX().headimgurl, }); @@ -543,6 +567,21 @@ class LoginController extends GetxController { } break; } + case 6://游客登录 + { + requestLogin({ + "mail": "", + "phone": "", + "stype": loginType, + "vcode": "", + "ttoken": "", + "phonemodel": "", + "phonemac": _deviceId, + "name": "", + "avatar": "", + }); + break; + } default: { Get.snackbar( diff --git a/lib/modules/login/views/login_view.dart b/lib/modules/login/views/login_view.dart index 109b97c39..58a707a37 100644 --- a/lib/modules/login/views/login_view.dart +++ b/lib/modules/login/views/login_view.dart @@ -457,6 +457,9 @@ class LoginView extends GetView { SizedBox(width: 24.w), _buildSocialButton( FontAwesomeIcons.facebook, Colors.blue, isDarkMode), + SizedBox(width: 24.w), + _buildSocialButton( + FontAwesomeIcons.userSecret, Colors.black, isDarkMode),//添加游客登录按钮 ], ), ], @@ -508,6 +511,11 @@ class LoginView extends GetView { controller.loginType = 2; break; } + case FontAwesomeIcons.userSecret: // 处理游客登录 + { + controller.loginType = 6; + break; + } } controller.login(); }