flutter 保存用户信息

3,525 阅读1分钟

第三方库

shared_preferences: ^0.5.3+1

app global.drat

import 'package:shared_preferences/shared_preferences.dart';

// 构造函数中不能进行异步操作 在root_scene.dart中初始化
SharedPreferences preferences;

app root_scene.dart

  bool _isFinishSetup = false;

@override
  void initState() {
    setupApp();  // 这里进行初始化
    super.initState();
  }
  
  @override
  Widget build(BuildContext context) {
    if (!_isFinishSetup) {
      return Container();
    }
}
  
  setupApp() async {
    preferences = await SharedPreferences.getInstance();
    _isFinishSetup = true;
    setState(() {

    });
  }

app user_manager.dart 中用户信息存取的封装

UserManager.saveUser(baseBean.userInfo.uid); // 存
UserManager.uid; // 取
import 'global.dart';

class UserManager {
  String _uid;
  static String get uid {
    return UserManager._getInstance._uid;
  }
  
  static void saveUser(String uid) {
    UserManager._getInstance._saveUser(uid);  
  }
  
  static UserManager _instance;
  static UserManager get _getInstance {
    if (_instance == null) {
      _instance = UserManager();
      _instance.loadUserFromLocal();
    }
    return _instance;
  }

  void _saveUser(String uid) async {
    _uid = uid;
    preferences.setString('uid', uid);
  }

  loadUserFromLocal() {
    _uid = preferences.getString('uid');
  }
}