import 'dart:core'; import 'package:plugin_platform/engine/sp/sp_util.dart'; import 'package:shared/utils/event_bus.dart'; import 'package:shared/utils/log_utils.dart'; import 'package:shared/utils/util.dart'; import '../constants/app_constant.dart'; /// 用户相关的单例服务,保存了Token,UserProfile等信息 class UserService { UserService(); //用户登录Token String? token; //用户是否已经登录 - 可变字段 bool haslogin = false; //用户详情信息 - 可变字段 // Rx hotelInfo = HotelInfoEntity(); //极光推送的 registrationId - 可变字段 String registrationId = ''; //当前用户的未读消息数量 int unreadNotificationsCount = 0; /// 设置全局的Token,同时更新 hasLogin 的值,赋值时机如下 /* 1. 在登录或注册成功的时候赋值 2. 在main.dart中初始化的时候查询是否有Token,如果有的话需要赋值 3. 退出登录的时候需要赋值 */ void setToken(String? token) { this.token = token; if (Utils.isEmpty(token)) { haslogin = false; SPUtil.remove(AppConstant.storageToken); } else { haslogin = true; SPUtil.putString(AppConstant.storageToken, token!); } Log.d('UserService =========> 设置Token为:$token'); } /// 处理退出登录之后的数据清除 void handleLogoutParams() { SPUtil.remove(AppConstant.storageToken); haslogin = false; // hotelInfo = HotelInfoEntity(); } void init() { String? token = SPUtil.getString(AppConstant.storageToken); Log.d('UserService - 查询SP token:$token 并赋值'); setToken(token); } }