|
|
@ -1,5 +1,6 @@ |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:flutter/material.dart'; |
|
|
import 'package:flutter/material.dart'; |
|
|
|
|
|
import 'package:logger/web.dart'; |
|
|
import '../../../routes/app_routes.dart'; |
|
|
import '../../../routes/app_routes.dart'; |
|
|
import 'dart:convert'; |
|
|
import 'dart:convert'; |
|
|
import 'dart:ffi'; |
|
|
import 'dart:ffi'; |
|
|
@ -10,6 +11,7 @@ import '../../../data/services/network/api.dart'; |
|
|
import '../../../../data/models/user_Info.dart'; |
|
|
import '../../../../data/models/user_Info.dart'; |
|
|
//import 'package:shared_preferences/shared_preferences.dart'; |
|
|
//import 'package:shared_preferences/shared_preferences.dart'; |
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
|
|
|
import 'package:device_info_plus/device_info_plus.dart'; |
|
|
|
|
|
|
|
|
enum LoginViewState { |
|
|
enum LoginViewState { |
|
|
welcome, // 欢迎页面 |
|
|
welcome, // 欢迎页面 |
|
|
@ -20,6 +22,8 @@ class LoginController extends GetxController { |
|
|
static LoginController get to => Get.find(); |
|
|
static LoginController get to => Get.find(); |
|
|
final GetStorage _storage = GetStorage(); |
|
|
final GetStorage _storage = GetStorage(); |
|
|
|
|
|
|
|
|
|
|
|
String _deviceId = ''; |
|
|
|
|
|
|
|
|
// 添加国家编码相关状态 |
|
|
// 添加国家编码相关状态 |
|
|
final _selectedCountryCode = ''.obs; |
|
|
final _selectedCountryCode = ''.obs; |
|
|
final _selectedCountryFlag = '✉️'.obs; |
|
|
final _selectedCountryFlag = '✉️'.obs; |
|
|
@ -166,6 +170,7 @@ class LoginController extends GetxController { |
|
|
void onInit() { |
|
|
void onInit() { |
|
|
super.onInit(); |
|
|
super.onInit(); |
|
|
_viewState.value = LoginViewState.welcome; |
|
|
_viewState.value = LoginViewState.welcome; |
|
|
|
|
|
_initDeviceInfo(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@override |
|
|
@override |
|
|
@ -175,6 +180,25 @@ class LoginController extends GetxController { |
|
|
super.onClose(); |
|
|
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) { |
|
|
void updateCountryCode(String code, String flag) { |
|
|
_selectedCountryCode.value = code; |
|
|
_selectedCountryCode.value = code; |
|
|
@ -418,7 +442,7 @@ class LoginController extends GetxController { |
|
|
"vcode": verificationCodeController.text, |
|
|
"vcode": verificationCodeController.text, |
|
|
"ttoken": "", |
|
|
"ttoken": "", |
|
|
"phonemodel": "", |
|
|
"phonemodel": "", |
|
|
"phonemac": "", |
|
|
"phonemac": _deviceId, |
|
|
"name": "", |
|
|
"name": "", |
|
|
"avatar": "", |
|
|
"avatar": "", |
|
|
}); |
|
|
}); |
|
|
@ -443,7 +467,7 @@ class LoginController extends GetxController { |
|
|
"vcode": verificationCodeController.text, |
|
|
"vcode": verificationCodeController.text, |
|
|
"ttoken": "", |
|
|
"ttoken": "", |
|
|
"phonemodel": "", |
|
|
"phonemodel": "", |
|
|
"phonemac": "", |
|
|
"phonemac": _deviceId, |
|
|
"name": "", |
|
|
"name": "", |
|
|
"avatar": "", |
|
|
"avatar": "", |
|
|
}); |
|
|
}); |
|
|
@ -472,7 +496,7 @@ class LoginController extends GetxController { |
|
|
"vcode": "", |
|
|
"vcode": "", |
|
|
"ttoken": facebook.token, |
|
|
"ttoken": facebook.token, |
|
|
"phonemodel": "", |
|
|
"phonemodel": "", |
|
|
"phonemac": "", |
|
|
"phonemac": _deviceId, |
|
|
"name": facebook.name, |
|
|
"name": facebook.name, |
|
|
"avatar": facebook.pictureurl, |
|
|
"avatar": facebook.pictureurl, |
|
|
}); |
|
|
}); |
|
|
@ -501,7 +525,7 @@ class LoginController extends GetxController { |
|
|
"vcode": "", |
|
|
"vcode": "", |
|
|
"ttoken": google.token, |
|
|
"ttoken": google.token, |
|
|
"phonemodel": "", |
|
|
"phonemodel": "", |
|
|
"phonemac": "", |
|
|
"phonemac": _deviceId, |
|
|
"name": google.displayName, |
|
|
"name": google.displayName, |
|
|
"avatar": google.pictureurl, |
|
|
"avatar": google.pictureurl, |
|
|
}); |
|
|
}); |
|
|
@ -535,7 +559,7 @@ class LoginController extends GetxController { |
|
|
"vcode": "", |
|
|
"vcode": "", |
|
|
"ttoken": FlWX().code, |
|
|
"ttoken": FlWX().code, |
|
|
"phonemodel": "", |
|
|
"phonemodel": "", |
|
|
"phonemac": "", |
|
|
"phonemac": _deviceId, |
|
|
"name": FlWX().nickname, |
|
|
"name": FlWX().nickname, |
|
|
"avatar": FlWX().headimgurl, |
|
|
"avatar": FlWX().headimgurl, |
|
|
}); |
|
|
}); |
|
|
@ -543,6 +567,21 @@ class LoginController extends GetxController { |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
case 6://游客登录 |
|
|
|
|
|
{ |
|
|
|
|
|
requestLogin({ |
|
|
|
|
|
"mail": "", |
|
|
|
|
|
"phone": "", |
|
|
|
|
|
"stype": loginType, |
|
|
|
|
|
"vcode": "", |
|
|
|
|
|
"ttoken": "", |
|
|
|
|
|
"phonemodel": "", |
|
|
|
|
|
"phonemac": _deviceId, |
|
|
|
|
|
"name": "", |
|
|
|
|
|
"avatar": "", |
|
|
|
|
|
}); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
default: |
|
|
default: |
|
|
{ |
|
|
{ |
|
|
Get.snackbar( |
|
|
Get.snackbar( |
|
|
|