import 'dart:async'; import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_alibc/flutter_alibc.dart'; import 'package:zhiying_comm/models/user/user_info_model.dart'; import 'package:zhiying_comm/util/empty_util.dart'; import 'package:zhiying_comm/util/event_util/event_util.dart'; import 'package:zhiying_comm/util/event_util/log_out.dart'; import 'package:zhiying_comm/util/global_config.dart'; import 'package:zhiying_comm/util/log/let_log.dart'; import 'package:zhiying_comm/util/mob_util/mob_util.dart'; import 'package:zhiying_comm/util/shared_prefe_util.dart'; import 'package:zhiying_flutter_webview/zhiying_flutter_webview.dart'; /// /// 用户信息Provider /// class UserInfoNotifier with ChangeNotifier { /// 用户信息 static UserInfoModel _userInfo; static bool reFresh=false; static UserInfoModel get staitcUserInfo { return _userInfo; } UserInfoModel get userInfo { if (null == _userInfo) { getUserInfoModel().then((user) { if (user != null) { _userInfo = user; notifyListeners(); } }); } return _userInfo; } /// 更新淘宝授权 void updateUserAuth(bool isAuth) { if (null == _userInfo) { getUserInfoModel().then((user) { if (user != null) { _userInfo = user; _userInfo.isTBAuth = isAuth; Logger.log('upate data TBAuth'); notifyListeners(); } }); } else { _userInfo.isTBAuth = isAuth; Logger.log('upate data TBAuth'); notifyListeners(); } } /// 更新用户数据 void setUserInfo(UserInfoModel loginUser) async { print('${loginUser.toString()}'); _userInfo = loginUser; // 缓存数据 await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, loginUser.token); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, loginUser.mobile); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, jsonEncode(loginUser.toJson())); FlutterAlibc.loginOut(); // 设置H5的Token if(!EmptyUtil.isEmpty(loginUser?.token)) { String domain = await SharedPreferencesUtil.getStringValue(GlobalConfig.H5_DOMAIN); if (!EmptyUtil.isEmpty(domain)) { ZhiyingFlutterWebview.registLocalStore({'TOKEN_KEY': loginUser?.token}, [domain]); } } notifyListeners(); } /// 退出登陆 void unLogin() async { _userInfo = null; // 清除缓存数据 await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_TOKEN, ''); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_MOBILE, ''); await SharedPreferencesUtil.setStringValue(GlobalConfig.SHARED_KEY_USER_INFO, ''); // 退出淘宝登录 FlutterAlibc.loginOut(); // 退出QQ登录 MobUtil.cancelQQAuth(); // 退出微信登录 MobUtil.cancelWeChatAuth(); // 清除H5 Token String domain = await SharedPreferencesUtil.getStringValue(GlobalConfig.H5_DOMAIN); if (!EmptyUtil.isEmpty(domain)) { ZhiyingFlutterWebview.registLocalStore({'TOKEN_KEY': ''}, [domain]); } if(!reFresh){ reFresh = true; Timer(Duration(milliseconds: 1000), (){ EventUtil.instance.fire(LogOut()); }); } notifyListeners(); } /// 获取登陆数据 Future getUserInfoModel() async { if (null != _userInfo) { return _userInfo; } try { String userInfoJson = await SharedPreferencesUtil.getStringValue(GlobalConfig.SHARED_KEY_USER_INFO); if (userInfoJson == null || userInfoJson == '') { _userInfo = UserInfoModel(); } else { _userInfo = UserInfoModel.fromJson(jsonDecode(userInfoJson)); } } catch (e) { Logger.log(e); } return _userInfo; } }