Browse Source

添加游客登录

weicu
lxm 2 years ago
parent
commit
52b817a6d6
  1. 49
      lib/modules/login/controllers/login_controller.dart
  2. 8
      lib/modules/login/views/login_view.dart

49
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<void> _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(

8
lib/modules/login/views/login_view.dart

@ -457,6 +457,9 @@ class LoginView extends GetView<LoginController> {
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<LoginController> {
controller.loginType = 2;
break;
}
case FontAwesomeIcons.userSecret: // 处理游客登录
{
controller.loginType = 6;
break;
}
}
controller.login();
}

Loading…
Cancel
Save